vim的命令模式下,对于频繁使用的复杂命令, 应该怎么简化? 是不是设计快捷键就可以了?
本人经常使用一个替换命令 :0,$s/t/ /g 就是将tab键替换成4个空格.
对于新建的文件, 本人已经在配置文件中做了配置. 只是别人的文件经常出现tab键.
每次我都要替换一下.
对于vim设置快捷键,我还不太熟悉, 可以用快捷键吗? 怎么设置? 用快捷键替换:0,$s/t/ /g 常用命令
可不可以,在vim打开文件的时候,自动转换, 这样连快捷键都不用设置了?
首先感谢下面的回答者, 我是在他们给的解释上, 阅读帮助文档, 最后得出的个人觉得合理的方法
快捷键肯定是可以的, 但是需要记住快捷键. 对于我目前的问题, 我选择自动转换比较好.
首先:help ret
查看文档, 这里我想说的是, 替换的时候, 小心替换程序中字符串中的\t
字符
:help auto
查看文档, 不多说了.
查看.vimrc文件, vimrc文件中, 已经有了if has("autocmd")
部分, 把对应的命令写在一起就可以了.
autocmd BufRead *.cpp,*.h :ret
这个自动替换命令, BufRead和BufReadPost是一样的. 这里要注意一下:模式选项,最好不要用*,具体替换什么类型的文件, 将后缀写出来.防止其他格式文件的误替换.
这个替换命令,只是替换Buf缓存中的内容, 如果没有修改, 没有保存. 是不会写入的. 直接退出的话, 没有任何修改的话, vim不会提示你保存, tab键依然存在. 这个不伤大雅.
最后,再次感谢下面的回答者.新年快乐.
先来抛砖引玉:
既然你已经有了操作,那么为这个操作设置一个快捷键是很简单的,比如这样将这个快捷键设置为 normal mode 下的
<Leader>ts
--nnoremap <Leader>ts :0,$s/t/ /g<CR>
, 大概是希望快捷键映射的模式 快捷键 操作
。第二个可以使用
autocmd BufRead * :%ret! 4<CR>
, 将整个文件的 tab 转换成 space,每个 tab 用 4 个 space 替代. ret 指的是 replace tab, 更多内容可以:help ret
,:help autocmd
,:help event
,:help BufRead
.vim 有一个命令叫做
:retab
(我有可能记错了,但应该差不离),可以转换 tab 为 space,你可以查阅一下相关的 help,经常使用的话可以把它绑定一个按键。世界上最牛的编辑器: Vim 1 (原创动图演示所有例子) http://www.imooc.com/article/...
完全可以自定义快捷键, 只需要玩好.vimrc 就可以了