我尝试将以下内容放入文件标题中:
#!/bin/sh
# vim:set ts=2 sts=2 sw=2 expandtab:
# vim:map <leader>t :w\|:!./script.sh <cr>:
但是Vim总是抱怨map
,说它无效。我也试过nnoremap
但没有成功。我该怎么做才能解决这个问题(我只想在这个文件中使用它)?
答案 0 :(得分:4)
Modelines 仅用于选项。
如果您只想为该文件添加此映射,请将此代码段添加到~/.vimrc
:
augroup ThisFile
autocmd!
autocmd BufRead,BufNew /path/to/file nnoremap <buffer> <leader>t :w\|:!./script.sh <cr>:
augroup END
修改的
看起来你想要一个映射来执行当前文件。如果是这样的话,你真的在这里追逐错误的兔子,并在the XY Problem墙上猛烈地撞击。
您可以使用%
作为&#34;与当前缓冲区关联的文件的同义词&#34;因此,假设您的脚本是可执行的,此命令将执行它:
:w|!./%<CR>
因此,您可以简单地将此通用映射放在~/.vimrc
:
nnoremap <leader>t :w\|!./%<CR>
注1:请参阅:help c_%
了解%
的含义以及该背景。
注意2:在映射中使用栏时需要进行转义,请参阅:help map_bar
。