对vim的简单配置

花了点时间研究了强(zhuang)大(bi)的编辑器vim,简单的配置了一下,并记录下心得。不过这只是学习的开始,想要打造真正属于自己的编辑器还得不断学习。

安装

珍爱生命,远离折腾。

首先从安装开始,ubuntu系统应该都会带有vim,如果没有,就输入以下命令安装:

sudo apt-get install vim-gtk

ubuntu安装一向很简单。安装好vim就证明你马上就要入坑了!

命令行输入vim,最初的界面是这样的:

原始界面

配置完成的界面是这样的:

配置后界面

快捷键

vim的高效之处在于可以脱离鼠标,使用键盘操作一切。对熟练掌握vim的程序员来说,减少鼠标的使用会节省大量的时间,提高效率。

vimrc

Github地址:https://github.com/alpha87/vimrc

这是最初的配置文件,配置比较简陋,但是写一些简单的代码足够了。

命令行输入:

sudo vim ~/.vimrc

即可打开配置文件,编辑:

" AlPha-vim-config
" http://alpha87.cn
" 最新配置见 github

" 非vi
""""""""""""""""""""
set nocompatible

" 中文帮助
""""""""""""""""""""
set helplang=cn

" 查找时自动跳转
""""""""""""""""""""
set incsearch

" 查找不区分大小写
"""""""""""""""""""
set ignorecase

" 代码缩进
""""""""""""""""""""
set tabstop=4
set softtabstop=4
set shiftwidth=4
set textwidth=79
set expandtab
set autoindent
set fileformat=unix

" 系统剪贴板
""""""""""""""""""""
set clipboard=unnamed

" 修改编码
""""""""""""""""""""
set encoding=utf-8

"关闭代码折叠
""""""""""""""""""""
set nofoldenable

" 修改配色
""""""""""""""""""""
colorscheme elflord

" 显示行号
""""""""""""""""""""
set number

" 突出显示当前栏
""""""""""""""""""""
map <leader>c :set cursorline!<cr>
set cursorline

" 隐藏滚动条
""""""""""""""""""""
set guioptions-=r
set guioptions-=L
set guioptions-=b

" 语法高亮
""""""""""""""""""""
syntax on
set hlsearch
let python_highlight_all = 1
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all

" Vundle 插件管理
""""""""""""""""""""
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Bundle 'Raimondi/delimitMate'
Bundle 'kien/rainbow_parentheses.vim'
Bundle 'Lokaltog/vim-powerline'
Plugin 'scrooloose/nerdtree'
Plugin 'Yggdroot/indentLine'
Plugin 'Valloric/YouCompleteMe'
Bundle "klen/python-mode"
Bundle 'nvie/vim-flake8'
Bundle 'bronson/vim-trailing-whitespace'
Bundle 'hdima/python-syntax'
Bundle 'kien/ctrlp.vim'
call vundle#end()
filetype plugin indent on

" 文件搜索
"""""""""""""""""""
" 打开ctrlp搜索
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
" 相当于mru功能,show recently opened files
map <leader>fp :CtrlPMRU<CR>
"set wildignore+=*/tmp/*,*.so,*.swp,*.zip     " MacOSX/Linux"
let g:ctrlp_custom_ignore = {
    \ 'dir':  '\v[\/]\.(git|hg|svn|rvm)$',
    \ 'file': '\v\.(exe|so|dll|zip|tar|tar.gz)$',
    \ }
"\ 'link': 'SOME_BAD_SYMBOLIC_LINKS',
let g:ctrlp_working_path_mode=0
let g:ctrlp_match_window_bottom=1
let g:ctrlp_max_height=15
let g:ctrlp_match_window_reversed=0
let g:ctrlp_mruf_max=500
let g:ctrlp_follow_symlinks=1

" 状态栏
"""""""""""""""""""
let g:Powerline_symbols = 'unicode'

" 标志无效空格
"""""""""""""""""""
map <leader><space> :FixWhitespace<cr>
" \+space去掉末尾空格

" 缩进指示线 indentLine
"""""""""""""""""""
map <leader>i :IndentLinesToggle<cr>
" \+i 关闭缩进指示线,再按开启
let g:indentLine_char = '┆'
let g:indentLine_enabled = 1

" 目录树 nerdtree F2开启和关闭树"
"""""""""""""""""""
map <F2> :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
" 显示书签"
let NERDTreeShowBookmarks=1
" 设置忽略文件类型"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
" 窗口大小"
let NERDTreeWinSize=25

" YCM
"""""""""""""""""":
" 默认配置文件路径"
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
" 打开vim时不再询问是否加载ycm_extra_conf.py配置"
let g:ycm_confirm_extra_conf=0
set completeopt=longest,menu
" python解释器路径 \+r 运行程序
let g:ycm_path_to_python_interpreter='/usr/bin/python'
" 是否开启语义补全"
let g:ycm_seed_identifiers_with_syntax=1
" 是否在注释中也开启补全"
let g:ycm_complete_in_comments=1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
" 开始补全的字符数"
let g:ycm_min_num_of_chars_for_completion=1
" 补全后自动关机预览窗口"
let g:ycm_autoclose_preview_window_after_completion=1
" 禁止缓存匹配项,每次都重新生成匹配项"
let g:ycm_cache_omnifunc=0
" 字符串中也开启补全"
let g:ycm_complete_in_strings = 1
" 离开插入模式后自动关闭预览窗口"
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
" 上下左右键行为"
inoremap <expr> <Down>     pumvisible() ? '\<C-n>' : '\<Down>'
inoremap <expr> <Up>       pumvisible() ? '\<C-p>' : '\<Up>'
inoremap <expr> <PageDown> pumvisible() ? '\<PageDown>\<C-p>\<C-n>' : '\<PageDown>'
inoremap <expr> <PageUp>   pumvisible() ? '\<PageUp>\<C-p>\<C-n>' : '\<PageUp>'

" 括号匹配高亮
"""""""""""""""""
let g:rbpt_colorpairs = [
    \ ['brown',       'RoyalBlue3'],
    \ ['Darkblue',    'SeaGreen3'],
    \ ['darkgray',    'DarkOrchid3'],
    \ ['darkgreen',   'firebrick3'],
    \ ['darkcyan',    'RoyalBlue3'],
    \ ['darkred',     'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['brown',       'firebrick3'],
    \ ['gray',        'RoyalBlue3'],
    \ ['black',       'SeaGreen3'],
    \ ['darkmagenta', 'DarkOrchid3'],
    \ ['Darkblue',    'firebrick3'],
    \ ['darkgreen',   'RoyalBlue3'],
    \ ['darkcyan',    'SeaGreen3'],
    \ ['darkred',     'DarkOrchid3'],
    \ ['red',         'firebrick3'],
    \ ]
let g:rbpt_max = 40
let g:rbpt_loadcmd_toggle = 0

" 括号自动补全
""""""""""""""""""
au FileType python let b:delimitMate_nesting_quotes = ['"']

这份配置文件只涉及到比较基础的功能,代码提示,快速运行,编码缩进等。需要注意的是代码提示在导入模块的时候不会提示,但是在之后的使用过程中会提示。这也有利于你记住导入包的名字啊,抛开pycharm,让你真正写代码的时候发现模块都不会拼写,多尴尬!

多行注释及取消注释

多行注释:

  1. 进入命令行模式,按ctrl + v进入 -visual block- 模式,选中多行,把需要注释的行标记起来;

  2. 按大写字母I,再插入注释符,例如 #;

  3. esc键(等1秒钟后)全部注释。

取消多行注释:

  1. 进入命令行模式,按ctrl + v进入 -visual block- 模式,选中列的个数;

  2. 按字母j,或者k选中注释符号;

  3. d键就可全部取消注释。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容