Text Vim-如何存储和执行常用命令?

Text Vim-如何存储和执行常用命令?,text,editor,vim,Text,Editor,Vim,如果我想用相同的命令集处理一批文本文件,例如: :设置tw=50 gggqG 我可以保存上面的内容并用快捷命令运行吗?如果您只想使用一次,请使用其他答案中指定的宏。如果要更频繁地执行此操作,可以在文件中包含以下行: :map\r:set tw=50gggqG 这将映射\r,使您每次按\r时都会执行两行。当然,您也可以选择不同的快捷方式,如(Ctrl+R)或或其他什么。是的,重要的单词是宏 但是它看起来像是一个“命令”,例如:set tw=50最好包含在.vimrc文件中,这样每次启动时vim都

如果我想用相同的命令集处理一批文本文件,例如:

:设置tw=50
gggqG
我可以保存上面的内容并用快捷命令运行吗?

如果您只想使用一次,请使用其他答案中指定的宏。如果要更频繁地执行此操作,可以在文件中包含以下行:

:map\r:set tw=50gggqG

这将映射
\r
,使您每次按
\r
时都会执行两行。当然,您也可以选择不同的快捷方式,如
(Ctrl+R)或
或其他什么。

是的,重要的单词是


但是它看起来像是一个“命令”,例如:set tw=50最好包含在
.vimrc
文件中,这样每次启动时vim都会使用它。

作为一个非常快速的开始,请将它放在您的.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>
定义函数 " '!' 如果已经定义,则表示覆盖功能 “函数始终使用大写名称 函数!DoSomething() :设置tw=50 gggqG 端功能 “在正常模式下映射击键(如F12)以调用您的函数 nmap:调用DoSomething()
注意:上面的格式化代码看起来非常糟糕,但以“开头的行是注释。

除了宏,您可以使用
argdo
。此命令将对所有打开的文件执行相同的操作。以下是使用和格式化所有打开的文件的方式:


之前,你要写几千行<代码> VIMRC/<代码>(这是一件好事,但你可以推迟一段时间),我想你可能想看看普通的记录,特别是你可以考虑使用<代码> q>代码> x(其中x是任意键)对于录制,

q
完成录制,
@
x执行录制的宏。

以下in.vimrc将定义一个新命令
Wrap
,该命令执行您想要的操作

command! Wrap :set tw=50 | :normal gggqG

使用
:Wrap

我不使用ViM(Emacs…;-),但是你想要的功能必须被称为“宏”,因为在任何地方,你都应该用谷歌搜索。你正在寻找“ViM宏”。它是::-)我可以将它映射到键入的命令而不是键盘快捷键(比如执行脚本)吗?我可以想象,否则我的钥匙就会用完!是的,你甚至可以将它映射到
hellomynameisjon
,如果你愿意:)。那就是“:map\hellomynameisjon:set tw=50gggqG"? 我只是按ESC键然后输入?不,反斜杠包含在击键中。如果这样做,则必须键入带有反斜杠的
\hellomynameisjon
。除此之外,你是对的。看看rson的解决方案,将其与冒号一起使用。我只会对每个文件运行一次宏。有办法保存录音吗?说实话,我不知道;-)我想不是。但只要不退出vim,所有文件的记录都会持续。尝试
:帮助重复
shell> vim *.txt

:argdo exe "normal gggqG"|up
command! Wrap :set tw=50 | :normal gggqG