Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:在auto shebang之后添加两行_Vim - Fatal编程技术网

Vim:在auto shebang之后添加两行

Vim:在auto shebang之后添加两行,vim,Vim,我已将我的.vimrc设置为自动添加shebang行,如下所示: autocmd BufNewFile * execute 'silent! 1s/.*/#!\/usr\/bin\/env ' . (empty(&filetype) ? '' : ' '.&filetype) 但是,我希望它也在下面添加两行并进入插入模式。当我简单地将$I添加到命令末尾时,如下所示,我得到一个错误。想法 autocmd BufNewFile * execute 'silent! 1s/.*/#!

我已将我的.vimrc设置为自动添加shebang行,如下所示:

autocmd BufNewFile * execute 'silent! 1s/.*/#!\/usr\/bin\/env ' . (empty(&filetype) ? '' : ' '.&filetype)
但是,我希望它也在下面添加两行并进入插入模式。当我简单地将$I添加到命令末尾时,如下所示,我得到一个错误。想法

autocmd BufNewFile * execute 'silent! 1s/.*/#!\/usr\/bin\/env ' . (empty(&filetype) ? '' : ' '.&filetype) $<CR><CR>i
autocmd BufNewFile*执行“静默”!1s/*/#\/usr\/bin\/env'。(空(&filetype)?“”:&filetype)$i
您可以使用以下功能:

autocmd BufNewFile * if !empty(&filetype) | execute 'silent! 1s/.*/#!\/usr\/bin\/' . &filetype . '\r\r'| :startinsert | endif

顺便说一句,思维敏捷,我将此添加到我的vimrc:)

您试图在
:exe
中使用普通命令。为此,您需要使用
norm
feedkeys
。例如,尝试将
$i
替换为
|调用feedkeys(“A\\”)
(未测试)。@Sergio:更改为插入模式很特殊;最好使用专用的
:startinsert
命令,而不是通用的
feedkeys()