Hong's Blog
Be Agile. Be Smart. Be Visionary. Be Dedicated.
Working in process
Vim的命令需要经常使用才不会忘记。 把Vim打造成适合日常工作的“轻量级IDE”可以有助于熟悉和记忆Vim命令。
先在.vimrc文件里设置一下mapleader,
.vimrc
let mapleader = ','
然后就可以用快捷键,+a来快速地输入命令:Ack!。
,
a
:Ack!
nmap <leader>a :Ack!
装一个插件管理系统可以更好地管理Vim的插件。我选了pathogen.vim作为Vim的插件管理。
ack.vim插件可以用来搜索文件内容。
按快捷键,a就可以进行文件内容搜索了。比如输入“sku”就会列出所有含“sku”的文件,效果见下面的截图。
,a
ack.vim插件是借助第三方的程序来进行搜索的,然后把搜索结果展示在Vim里。 默认情况下,ack.vim使用ack来进行搜索。ack相比grep要更快、更好用。 The Silver Searcher(ag)是一个类似ack的搜索工具,号称比ack还要快。 OS X下可以用homebrew方便地安装它们,
brew install ack brew install ag
ack和ag也可以在Windows下安装。 ag在Windows下可通过Cygwin等方式来安装,详见ag的官方Wiki。
让ag成为ack.vim的搜索工具,
let g:ackprg = 'ag --nogroup --column' " 让ack.vim使用ag作为搜索工具
基本上,ag和ack能接受的参数是类似的。
默认情况下,ack和ag会搜索当前工作目录。可以通过限制搜索目录来提高搜索速度,比如,
:Ack! text-to-search some_dir
也可以限制搜索的文件类型,比如
:Ack! --java text-to-search
ack默认会忽略.git目录。也可以使用--ignore-dir=name选项来指定要忽略的目录。 对于ag,默认会忽略.gitignore中指定的文件。 也可以在.agignore文件里加上想忽略的文件。比如,忽略maven工程下的target目录。 .agignore的语法和.gitignore类似。
--ignore-dir=name
target
ack的更多选项见其官方文档。 如果某个工程需要经常使用某些选项,可以把这些选项放到工程目录下的.ackrc文件中。
文件系统的导航可以借助NERDTree插件来实现。
nmap <leader>d :NERDTreeToggle<CR>
按下快捷键,d,效果见如下截图,
,d
在NERDTree窗口按?键可以显示帮助信息。
?
:NERDTreeFind命令可以在NERDTree窗口中显示当前文件的位置,类似于Eclipse的”Link with Editor”功能。
:NERDTreeFind
nmap <leader>df :NERDTreeFind<CR>
现在输入快捷键,df就可以在NERDTree窗口中显示当前文件。
,df
借助command-t插件可以实现文件的快速打开。
nmap <leader>t :CommandT<CR>
按下快捷键,t,其效果如下图所示,
,t
搜索是fuzzy的,不用输入完整的文件名,只要输入文件路径和文件名中的某些字母就可以。
command-t对Ruby和C编译器有依赖,详见其文档。另一个类似的插件CtrlP是纯VimScript实现的。 但是在使用中发现CtrlP有时候不能找到指定的文件,所以还是选择了command-t。
另外:CommandTBuffer命令可以用来快速打开已经打开的文件。 而:CommandTJump命令可用了在jumplist里快速定位。
:CommandTBuffer
:CommandTJump
supertab插件可以用作轻量级的自动补全工具。输入文字,然后按tab键进行补全,如下图所示,
tab
总是时不时地需要执行一些外部命令。比如代码写好后,用git命令来提交代码。 可以借助tmux来执行外部命令。tmux可以开多个pane,进行文字编辑时可以输入C-b+z进入“全屏模式”。 需要执行外部命令时,再C-b+z退回多pane模式。
C-b
z
最后附上我的Vim配置作为参考。
如果你觉得这篇文章对你有用,可以微信扫一扫表示🙏 / If you find this post is useful to you, buy me 🍶 via Wechat
Vim as an IDE
Working in process
Vim的命令需要经常使用才不会忘记。 把Vim打造成适合日常工作的“轻量级IDE”可以有助于熟悉和记忆Vim命令。
一些基本的Vim配置
设置mapleader
先在
.vimrc
文件里设置一下mapleader,然后就可以用快捷键
,
+a
来快速地输入命令:Ack!
。安装一个插件管理系统
装一个插件管理系统可以更好地管理Vim的插件。我选了pathogen.vim作为Vim的插件管理。
搜索文件内容
ack.vim插件可以用来搜索文件内容。
按快捷键
,a
就可以进行文件内容搜索了。比如输入“sku”就会列出所有含“sku”的文件,效果见下面的截图。ack.vim插件是借助第三方的程序来进行搜索的,然后把搜索结果展示在Vim里。 默认情况下,ack.vim使用ack来进行搜索。ack相比grep要更快、更好用。 The Silver Searcher(ag)是一个类似ack的搜索工具,号称比ack还要快。 OS X下可以用homebrew方便地安装它们,
ack和ag也可以在Windows下安装。 ag在Windows下可通过Cygwin等方式来安装,详见ag的官方Wiki。
让ag成为ack.vim的搜索工具,
更快地搜索
基本上,ag和ack能接受的参数是类似的。
默认情况下,ack和ag会搜索当前工作目录。可以通过限制搜索目录来提高搜索速度,比如,
也可以限制搜索的文件类型,比如
ack默认会忽略.git目录。也可以使用
--ignore-dir=name
选项来指定要忽略的目录。 对于ag,默认会忽略.gitignore中指定的文件。 也可以在.agignore文件里加上想忽略的文件。比如,忽略maven工程下的target
目录。 .agignore的语法和.gitignore类似。ack的更多选项见其官方文档。 如果某个工程需要经常使用某些选项,可以把这些选项放到工程目录下的.ackrc文件中。
文件系统导航
文件系统的导航可以借助NERDTree插件来实现。
按下快捷键
,d
,效果见如下截图,在NERDTree窗口按
?
键可以显示帮助信息。:NERDTreeFind
命令可以在NERDTree窗口中显示当前文件的位置,类似于Eclipse的”Link with Editor”功能。现在输入快捷键
,df
就可以在NERDTree窗口中显示当前文件。快速打开文件
借助command-t插件可以实现文件的快速打开。
按下快捷键
,t
,其效果如下图所示,搜索是fuzzy的,不用输入完整的文件名,只要输入文件路径和文件名中的某些字母就可以。
command-t对Ruby和C编译器有依赖,详见其文档。另一个类似的插件CtrlP是纯VimScript实现的。 但是在使用中发现CtrlP有时候不能找到指定的文件,所以还是选择了command-t。
另外
:CommandTBuffer
命令可以用来快速打开已经打开的文件。 而:CommandTJump
命令可用了在jumplist里快速定位。自动补全
supertab插件可以用作轻量级的自动补全工具。输入文字,然后按
tab
键进行补全,如下图所示,执行外部程序
总是时不时地需要执行一些外部命令。比如代码写好后,用git命令来提交代码。 可以借助tmux来执行外部命令。tmux可以开多个pane,进行文字编辑时可以输入
C-b
+z
进入“全屏模式”。 需要执行外部命令时,再C-b
+z
退回多pane模式。最后附上我的Vim配置作为参考。
如果你觉得这篇文章对你有用,可以微信扫一扫表示🙏 / If you find this post is useful to you, buy me 🍶 via Wechat