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键依然存在. 这个不伤大雅.
最后,再次感谢下面的回答者.新年快乐.
过去多啦不再A梦2017-05-16 16:36:21
先来抛砖引玉:
既然你已经有了操作,那么为这个操作设置一个快捷键是很简单的,比如这样将这个快捷键设置为 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
.
ringa_lee2017-05-16 16:36:21
vim 有一个命令叫做 :retab
(我有可能记错了,但应该差不离),可以转换 tab 为 space,你可以查阅一下相关的 help,经常使用的话可以把它绑定一个按键。