如果我想使用相同的命令集处理一批文本文件,例如:
:set tw = 50
gggqG
我可以保存以上内容并使用快捷命令运行吗?
答案 0 :(得分:12)
如果您只想使用一次,请使用其他一些答案中指定的宏。如果您想更频繁地执行此操作,可以在.vimrc
文件中包含以下行:
:map \r :set tw=50<CR>gggqG
这将映射\r
,以便在您按\r
时执行两行。当然,您也可以选择其他快捷方式,例如<C-R>
(Ctrl + R)或<F12>
等。
答案 1 :(得分:9)
.vimrc中的以下内容将定义一个符合您需要的新命令Wrap
。
command! Wrap :set tw=50 | :normal gggqG
使用:Wrap
答案 2 :(得分:6)
作为一个非常快速的开始,把它放在你的.vimrc中:
" define the function
" '!' means override function if already defined
" always use uppercase names for your functions
function! DoSomething()
:set tw=50
gggqG
endfunction
" map a keystroke (e.g. F12) in normal mode to call your function
nmap <F12> :call DoSomething()<CR>
注意:上面的格式化代码看起来相当可怕,但以“是注释。
开头的行答案 3 :(得分:2)
除宏外,您可以使用argdo
。此命令将对所有打开的文件执行相同的操作。以下是使用:argdo
和:normal
格式化所有打开文件的方式:
shell> vim *.txt
:argdo exe "normal gggqG"|up
答案 4 :(得分:1)
在你去写成千行.vimrc
之前(这是一件好事,但你可以推迟一段时间),我想你可能想看普通录音,特别是你可能考虑使用q
x (其中 x 是任意键)进行录制,q
完成录制,@
x 执行录制的宏。
答案 5 :(得分:0)
是的,重要的词是宏
但是看起来像'命令'如:set tw = 50会更好地包含在.vimrc
文件中,所以每次启动时vim都会使用它。