/ code-snippet  

vim Code Snippet

常用

  • 全选(高亮显示):按 esc 后,然后 ggvG 或者 ggVG
  • 全部复制:按 esc 后,然后 ggyG
  • 全部删除:按 esc 后,然后 dG

粘贴到终端 vim 缩进错乱

在 vim 中粘贴前先输入:

:set paste

原因:在终端的 vim 中没有相应的程序来处理这个从其他应用复制粘贴的过程,所以 vim 通过插入键盘输入的 buffer 来模拟这个粘贴的过程,这个时候 vim 会以为这是用户输入的。

问题就是出在这:当上一行结束,光标进入下一行时 vim 会自动以上一行的的缩进为初始位置。这样就会破坏原始文件的缩进。

配置

中文乱码

方案一:

# vim esc
:set encoding=utf8

方案二:

vim ~/.vimrc

# 添加以下
set fileencodings=utf8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8

方案三:

如果是使用 secureCRT,在远程主机上 vim 打开中文是正常的,但是 secureCRT 可能乱码,需要设置 Options-Session Option-Terminal-Appearance 的字符编码(比如这里是 UTF-8)。

基础命令

  • gg 是让光标移到首行,在 vim 才有效,vi 中无效
  • v 是进入 Visual(可视)模式
  • G 光标移到最后一行
  • d 删除选中内容
  • y 复制选中内容到 0 号寄存器
  • "+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用

References

– EOF –