VIM常用技巧总结

VIM实用技巧总结

    其实早就想整这篇总结了,一直没有时间写,鉴于李老板的强烈要求,今天更新上来。

    vim作为linux环境下一个非常强大的工具,其实是非常实用了,尤其是对于代码量庞大的项目来讲,简直就是福音。无法想象在一个集成IDE里面添加几万甚至百万个文件个文件时,你还能指望IDE能够快速的进行代码的快速浏览跳转,但是VIM就可以轻松做到。

    在默认安装的VIM中,其实没有带多少插件,但其自带的基本功能,也能满足普通的文本编辑需求。但是如果是经常使用VIM来查看阅读代码,那必须对默认的VIM进行一些强化,才能使其用起来更加顺手和方便。

    本文所描述的一些使用技巧,很多都是在各种VIM插件的基础上进行操作的,如果没有这些操作的支持,你可能无法在你的机器上面进行这些操作。不过没有关系,我已经把自己的VIM配置上传到github上,你可以直接下载下来使用,也可以对其进行修改以适配你自己的使用习惯。下面我分两部分来介绍vim的基本操作,当前这里不会介绍VIM的所有功能,只是介绍一些平常经常使用的基本操作。

1. VIM基本功能

    其实VIM本身就已经自带的非常多的功能,这些操作基本是纯键盘操作,对应习惯了Window环境的人来说,其实是很难习惯的。

1.1 vim常用模式

  • 正常(normal)模式:默认的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入“:”,任何其它模式中都可以通过键盘上的 Esc 键回到正常模式。
  • 命令(command)模式:用于执行较长、较复杂的命令;在正常模式下输入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。
  • 插入(insert)模式:输入文本时使用;在正常模式下键入“i”(insert)或“a”(append)即可进入插入模式(也有另外一些命令,如“c”,也可以进入插入模式,但这些命令有其它的作用)。
  • 可视(visual)模式:用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选定,或输入“Ctrl-V”来按方块选定。

1.2 基本移动

下面几个命令需要在正常模式执行

  • h:光标左移一个位置
  • j:光标右移一个位置
  • k:光标上移一个位置
  • l:光标下称一个位置
  • gg:光标跳转到文件首行
  • G:光标跳转文件最后一行
  • **_**:光标移到当前行第一个非空字符位置
  • 行号+gg:快速移动到指定行号
  • 数字+h/j/k/l:快速将光标向左、下、上、右移动指定个位置

1.3 窗口操作

窗口分割

  • :vsp:横向窗口分割
  • :sp:纵向窗口分割
  • ctrl+w+h:将光标切换到左边窗口
  • ctrl+w+j:将光标切换到下边窗口
  • ctrl+w+k:将光标切换到上边窗口
  • ctrl+w+l:将光标切换到右边窗口
  • ctrl+w:在已打开窗口中循环切换光标

调整窗口大小

  • :resize +3:纵向扩大窗口大小
  • :resize -3:纵向减小窗口大小
  • :vertical resize +3:横向扩大窗口大小
  • :vertical resize -3:横向减小窗口大小

1.4 文件编辑

normal模式下,撤下 i 键进入insert模式,此时可以直接编辑当前文件。
normal模式下的几个基本文件编辑操作:

  • y:复制当前光标所在处字符
  • yy:复制当前光标所在行
  • p:在当前位置粘贴上一次复制的内容

先按下 v 键进入view模式,通过移动h/j/k/l键选择要复制的内容,再按下 y 键可复制单词或整段文件,然后移动光标至目标位置,再使用 p 进行粘贴。

1.5 文件浏览

  • :Explore或:E:打开VIM默认的文件浏览器

1.6 VIM快捷键大侠

网上搜集的几个VIM常用快捷键汇总图,非常实用。

![](https://appwk.baidu.com/naapi/doc/view?ih=1090&o=jpg_6_0_______&iw=2000&ix=0&iy=652&aimw=2000&rn=1&doc_id=8e9eeafcf705cc1755270957&pn=1&sign=80c12618971a85f682dbaf264ea3616e&type=1&app_ver=2.9.8.2&ua=bd_800_800_IncredibleS_2.9.8.2_2.3.7&bid=1&app_ua=IncredibleS&uid=&cuid=&fr=3&Bdi_bear=WIFI&from=3_10000&bduss=&pid=1&screen=800_800&sys_ver=2.3.7)
![](https://images2015.cnblogs.com/blog/745893/201509/745893-20150928164335590-1666544744.png)

2. VIM私人定制

    前面介绍了VIM的一些常用的基本的操作,其实这些只是VIM的基本入门操作,它还有很多其他的操作和功能,这里不详细介绍,有需要的朋友,可以直接 :help 查看VIM的帮忙以学习更多的操作方法。

    下面开始我们的定制部分,这一部分主要介绍一些常用的VIM插件。没有安装插件的VIM已经为我们提供了相当多的功能,但是有些功能用起来非常难受。好在大牛们针对VIM开发了很多实用插件,这大大简化了VIM的操作。下面主要介绍一些平常开发中常用的插件的使用方法。

我的VIM配置:https://github.com/tshfut/tSuai_vim

2.1 主题定制

    VIM默认提供了很多主题,但我独爱Visual studio的默认浅色主题,而这个主题VIM里面却没有,无赖只能自己动手定制,只需要找一个已经存在的vim主题,copy一份放到.vim/colors目录下,然后根据里面的配置选项,设置自己喜欢的颜色即可。

配置好后,直接在.vimrc文件里面将自己的VIM主题设置为默认即可:

colorscheme Porsche

colorscheme space-vim-dark

    我自己的经常使用的vim主题主要有两个,一个浅色(类似Visual Studio),一个深色(space-vim-dark),都放下github上面了.

地址:https://github.com/tshfut/Porsche

    上两个配色截图:

2.1 文件浏览

    前面介绍了,使用 :Explore 命令可以查看文件目录树,但仍然觉得不方便,可以使用NERDTree插件来替代,NERDTree提供了非常好的文件目录可视化操作,支持文件展开、文件夹/文件区分标识等。

    相关的配置如下:


"let g:NERDTree_title='NERD Tree'
"let g:winManagerWindowLayout='NERDTree|TagList,Tarbar'
nmap mt :if IsWinManagerVisible() WMToggle else WMToggle :q endif "
nmap wm :NERDTreeToggle
autocmd vimenter * NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") ) | q | endif

function! NERDTree_Start()
exec 'NERDTree'
endfunction

function! NERDTree_IsValid()
return 1
endfunction

    使用效果如下图所示:

2.1 移动扩展

2.1 窗口大小

2.1 文件切换

2.1 高亮文本

2.1 代码跳转

2.1 文件浏览

2.1 文件浏览

参考资料:

  1. https://www.cnblogs.com/chenlogin/p/6245958.html

猜你喜欢

转载自www.cnblogs.com/tsts/p/10464930.html
今日推荐