linux打造vim IDE,如何将你的Vim 打造成轻巧强大的IDE

本文详细介绍了一位资深用户如何通过配置插件和设置来优化Vim编辑器,使其成为高效的编程工具。涵盖主题包括颜色配置、代码补全、文件浏览、语法检查等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vim和Emacs一个称为神之编辑器一个被称为编辑器之神,虽夸张,但也足以说明这两款编辑器软件的优秀。它Vim和Emacs编辑器都有陡峭的学习曲线,很多人都浅尝辄止,停留在入门的阶段。作为一名几乎完全使用Vim写各种代码、文档的人,我把我自己平时使用的插件和配置整理下来,方便自己的总结和归纳。如果这些内容能帮助到一些想学习Vim人,我将很荣幸。

在下面内容中,我会介绍我使用的插件、Vim的配置,最后如果你觉得这些配置手动太麻烦的话,推荐你使用SpaceVim,一个继承好的的Vim-IDE,适配多种变成语言,让你专注于编码。

b7d6048edd4f63823f2e79eff876ee3c.png

VIM配置说明

从上面截图中能看到的插件说起,把整个界面按照左窗口、主窗口、右窗口和下窗口命名,依次介绍出现在这些窗口中的主要插件。

主窗口

作为一款主要用于书写代码的文本编辑器,一个足够舒服、靓丽的配色当然是首要考虑的。 这里我使用的配色主题是molokai,在你安装好了这个插件之后,你需要下面几行配置应用它:

" Switch syntax highlighting on, when the terminal has colors

if (t_Co > 2 || has("gui_running")) && !exists("syntax_on")

syntax on

endif

" Javascript syntax hightlight

syntax enable

" Set syntax highlighting for specific file types

autocmd BufRead,BufNewFile Appraisals set filetype=ruby

autocmd BufRead,BufNewFile *.md set filetype=markdown

autocmd Syntax javascript set syntax=jquery

" Color scheme

colorscheme molokai

highlight NonText guibg=#060606

highlight Folded guibg=#0A0A0A guifg=#9090D0

另外一个推荐的vim主题是solarized,在选定了一个适合自己的主题之后,需要一些配置去解决排版的问题,比如字符编码和缩进等问题,参考以下配置。

" Backspace deletes like most programs in insert mode

set backspace=2

" Show the cursor position all the time

set ruler

" Display incomplete commands

set showcmd

" Set fileencodings

set fileencodings=utf-8,bg18030,gbk,big5

filetype plugin indent on

" Softtabs, 2 spaces

set tabstop=2

set shiftwidth=2

set shiftround

set expandtab

" Display extra whitespace

set list listchars=tab:»·,trail:·

" Make it obvious where 80 characters is

set textwidth=80

set colorcolumn=+1

" Numbers

set number

set numberwidth=5

set matchpairs+=<:>

set hlsearch

在VIM效果图截图第68行,水平和垂直方向分别有一条高亮条,这是用来表示当前光标所处于的行和列用的。实现它,只需要几行简单的配置就可以了:

" Highlight current line

au WinLeave * set nocursorline nocursorcolumn

au WinEnter * set cursorline cursorcolumn

set cursorline cursorcolumn

代码补全

代码补全是配置Vim成为一个代码编辑器IDE的必需功能,在我的主窗口中没有演示代码补全的功能,Vim默认的代码CTRL+N,CTRL+P补全基本够用,但如果要更精准自动补全插件,推荐你使用YouCompleteMe 自动补全插件。

2921913178d1505e3d46561377e0c12b.gif

左窗口

左窗口是一个用于浏览目录结构的插件nerdtree。 同样一些简单的配置之后,它便能为你提供一个方便够用的功能。

" NERD tree

let NERDChristmasTree=0

let NERDTreeWinSize=35

let NERDTreeChDirMode=2

let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']

let NERDTreeShowBookmarks=1

let NERDTreeWinPos="left"

" Automatically open a NERDTree if no files where specified

autocmd vimenter * if !argc() | NERDTree | endif

" Close vim if the only window left open is a NERDTree

autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif

" Open a NERDTree

nmap :NERDTreeToggle

右窗口

在我的截图中,右窗口陈列出了我当前打开的rb文件中申明的类、变量及方法等等。这是一 款名叫tagbar的插件,它为我们提供了一个简单的方式去浏览当前文件的结构,并且支持 在各个标签之间快捷的跳转。同理,安装之后,需要一些配置:

" Tagbar

let` `g:tagbar_width=35

let` `g:tagbar_autofocus=1

nmap :TagbarToggle

如果你发现默认的Tagbar不能支持你的语言,比如Css, Clojure, Markdown等等,你可以 参照这篇文章为它提供额外的支持。

下窗口

下窗口包含了两个部分:一个是用于全局搜索的窗口和一个状态条。

全局搜索是一个基于文件名的搜索功能,可以快速定位一个文件。这是ctrlp这个插件提 供的功能。下面是ctrlp的一些配置:

ctrap

set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.png,*.jpg,*.jpeg,*.gif " MacOSX/Linux

let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'

ctrlp默认会使用grep进行搜索,效率低且慢。所以,我使用了Ag去替换默认的搜索 功能。Ag是一款轻量级的搜索工具,速度非常快。为了集成Ag,需要添加下列配置:

if executable('ag')

" Use Ag over Grep

set grepprg=ag\ --nogroup\ --nocolor

" Use ag in CtrlP for listing files.

let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'

" Ag is fast enough that CtrlP doesn't need to cache

let g:ctrlp_use_caching = 0

endif

下面状态条中会依次显示:当前模式、Git分支、文件路径、文件是否保存以及当前所载行和 列的信息。这是通过vim-powerline来实现的。其中显示Git信息需要配合vim-fugitive插件一些使用。

set laststatus=2 " Always display the status line

set statusline+=%{fugitive#statusline()} " Git Hotness

Vim的语法检查

Vim中有个很强大的语法检查插件,它支持几乎所有常用的语言的语法检测syntastic。 附上一张来自官方的截图:

c2db725c21e7373ec724a567b0337565.png

为了让它更好的工作,同样需要一些配置:

" configure syntastic syntax checking to check on ``open` `as well as save

let` `g:syntastic_check_on_open=1

let` `g:syntastic_html_tidy_ignore_errors=[``" proprietary attribute \"ng-"``]

let` `g:syntastic_always_populate_loc_list = 1

let` `g:syntastic_auto_loc_list = 1

let` `g:syntastic_check_on_wq = 0

set` `statusline+=%``#warningmsg#

set` `statusline+=%{SyntasticStatuslineFlag()}

set` `statusline+=%*

Rails集成开发套件

我是一名Ruby的爱好者,所以Vim中少不了针对Ruby的一系列插件。我作为一名Web开发者, Rails这个大名鼎鼎的框架自然也是有所涉猎。所以在我的Vim中有着针对它们开发的一套插 件。

插件列表:

ruby-vim:在快速的在module, class, method中跳跃。

vim-bundler:在Vim中集成Bundler。

vim-endwise:自动补全end关键字。

vim-rails:它的功能很多,可以说是用 Vim开发Rails不可缺少的一个插件。更详细的信息,可以前往它的官方网站获取。

vim-rspec:在Vim中执行Rspec测试。

" Cucumber navigation commands

autocmd User Rails Rnavcommand step features/step_definitions -glob=**/* -suffix=_steps.rb

autocmd User Rails Rnavcommand config config -glob=**/* -suffix=.rb -default=routes

" RSpec.vim mappings

map t :call RunCurrentSpecFile()

map s :call RunNearestSpec()

map l :call RunLastSpec()

map a :call RunAllSpecs()

更多好用的工具

还有很多好用的插件,如果每个都一一说明,那么篇幅再长一倍怕也是不够。所以,我这里 就把一些好用的插件列出来,有兴趣的可以自己看看。

rename.vim:在Vim中为文件重命名。

vim-coffee-script:在Vim中舒心 的编写、编译Coffeescript。

vim-mkdir:当你在Vim中新建文件的时候, 自动帮你创建不存在的目录。

vim-surround:快速的删除、修改和添加 括号、引号、XML标签等等。

matchit:用%去在两个对应的字符间跳转。

tComment:快速注释、反注释代码。

emmet-vim:Emmet的Vim版。

vim-instant-markdown:Vim中对 Markdown文档的实时预览。

写在最后

通过以上的配置,你就可以拥有一些如第一张图所示的那样,看起来还不错的编辑器。如果你想更好的配置自己的Vim,不妨自己安装适合自己的插件。如果你有更好的自定义Vim配置,不妨留言分享。

参考内容:https://www.cnblogs.com/xd502djj/p/7112005.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值