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