Vim:在auto shebang之后添加两行
我已将我的.vimrc设置为自动添加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/.*/#!
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()
。