标签:不同 来替 toc 基础 spl layout 补充 android amp
其实早就想整这篇总结了,一直没有时间写,鉴于李老板的强烈要求,今天更新上来。
VIM作为linux环境下一个非常强大的工具,其实是非常实用了,尤其是对于代码量庞大的项目来讲,简直就是福音。无法想象在一个集成IDE里面添加几万甚至百万个文件个文件时,你还能指望IDE能够快速的进行代码的快速浏览跳转,但是VIM就可以轻松做到。
在默认安装的VIM中,其实没有带多少插件,但其自带的基本功能,也能满足普通的文本编辑需求。但是如果是经常使用VIM来查看阅读代码,那必须对默认的VIM进行一些强化,才能使其用起来更加顺手和方便。
本文所描述的一些使用技巧,很多都是在各种VIM插件的基础上进行操作的,如果没有这些操作的支持,你可能无法在你的机器上面进行这些操作。不过没有关系,我已经把自己的VIM配置上传到github上,你可以直接下载下来使用,也可以对其进行修改以适配你自己的使用习惯。下面我分两部分来介绍vim的基本操作,当前这里不会介绍VIM的所有功能,只是介绍一些平常经常使用的基本操作。
其实VIM本身就已经自带的非常多的功能,这些操作基本是纯键盘操作,对应习惯了Window环境的人来说,其实是很难习惯的。但是,一旦你习惯vim的操作后,将会发现它直接非常的实用,非常强大。
下面几个命令需要在normal模式执行
normal模式下,撤下 i 键进入insert模式,此时可以直接编辑当前文件。 normal模式下的几个基本文件编辑操作:
先按下v键进入view模式,通过移动h/j/k/l键选择要复制的内容,再按下y键可复制单词或整段文件,然后移动光标至目标位置,再使用p进行粘贴。
网上搜集的VIM常用快捷键汇总图,非常实用。
前面介绍了VIM的一些常用的基本的操作,其实这些只是VIM的基本入门操作,它还有很多其他的操作和功能,这里不详细介绍,有需要的朋友,可以直接:help查看VIM的帮忙以学习更多的操作方法。
下面开始我们的定制部分,这一部分主要介绍一些常用的VIM插件。没有安装插件的VIM已经为我们提供了相当多的功能,但是有些功能用起来非常难受。好在大牛们针对VIM开发了很多实用插件,这大大简化了VIM的操作。下面主要介绍一些平常开发中常用的插件的使用方法。
我的VIM配置:https://github.com/tshfut/tSuai_vim
我自己设置的几个常用快捷键:
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
上两个配色截图:
前面介绍了,使用:Explore命令可以查看文件目录树,但仍然觉得不方便,可以使用NERDTree插件来替代,NERDTree提供了非常好的文件目录可视化操作,支持文件展开、文件夹/文件区分标识等。
相关的配置如下:
"let g:NERDTree_title=‘NERD Tree‘ "let g:winManagerWindowLayout=‘NERDTree|TagList,Tarbar‘ nmap <silent> mt :if IsWinManagerVisible() <BAR> WMToggle<CR> <BAR> else <BAR> WMToggle<CR>:q<CR> endif "<CR> nmap wm :NERDTreeToggle<cr> 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
使用效果如下图所示:
如果只使用h/j/k/l进行移动,难免显得有些慢,当然,可以也VIM的鼠标控制,利用鼠标来移动光标,但是这就失去了键盘操作带来的一致性。EasyMotion这个插件很好的解决了屏幕显示范围内,精准快速移动光标的问题。其他使用方法很简单:
1. 首先按 s 键,然后输入想要跳转的位置的前两个字母,此时屏幕会高亮提示所有匹配的位置
2. 根据屏幕提示,输入目标位置对应的标记,就可以直接跳转到对应位置
使用效果图如下,我先是查找了有ng关键字的位置,下面:
这里的单词高亮,不是vim里面的语法高亮,高亮指定词。插件mark.vim提供了非常棒的单词高亮,默认支持5个高亮颜色,其实可以自己再添加,我又添加了5个,10个基本上已经够用。
使用方法:
使用效果如下图所示,高亮了函数的3个入参,极大的方便了代码阅读:
对于类似android源码这样的巨型项目来讲,在众多的源文件中搜索某个文件是非常痛苦的。然而,fzf这个模糊搜索工具很好的解决了这个问题,fzf并不是vim插件,但是他可以无缝的与vim进行配合使用。
安装好fzf后,直接在vim中执行:fzf命令,即可进行快速文件查找。
通常,我们需要在vim中同时打开多个,在多个文件之间进行来回切换时,vim自带的功能可以实现,但是并不是很方便,幸好有bufexplorer.vim,他可以帮忙我们快速地查看已经打开了的文件列表,如下图所示:
bufexplorer下载地址:https://www.vim.org/scripts/script.php?script_id=42
一般的IDE工具,都会有一个tab列表,标识不同的文件;还有一个状态栏,显示当前编辑文件或项目的一些状态信息。Airline给VIM带来了一个非常漂亮的状态栏,该状态可以显示很多信息:当前文件所有的git分支、文件名、光标所在函数名、文件总行数、当前光标所在行,当前vim所处模式等等,最上面还有一个已经打开的文件buffer列表(可惜无法直接用鼠标点击进行切换)。使用效果如下图所示:
Ctrlp是Vim的模糊搜索工具,支持文件,缓冲区,MRU(Most Recently Used)文件和标签等的搜索,也支持通过正则表达式搜索(Ctrl-r进行切换),同类软件还有 command-t,fzf等。ctrlp在速度上虽然有些逊色,但扩展性好,而且因为是由纯vimscript实现的,因此依赖少配置简单。
待补充
标签:不同 来替 toc 基础 spl layout 补充 android amp
原文地址:https://www.cnblogs.com/tsts/p/10467251.html