Vim 使用教程

来源:互联网 发布:如何把json解析出来 编辑:程序博客网 时间:2024/06/07 05:40

安装

vim 是一款文本编辑器,能安装众多的插件足以满足不同的开发需求,但是它最强大之处在于:键盘上的每个键都是功能键,当你熟悉相关命令之后,能极大的提高编码效率。
首先去官网下载一个 vim

配置

创建配置文件

  • 1、安装完成之后,去用户目录下(windows:C:\Users\xx, linux:home/xx/)查找 .vim 文件夹和 .vimrc
  • 2、如果没有就手动创建出来
  • 3、先列出个人的 .vimrc 文件,包含后续内容中的所有配置
set nocompatible                      " be iMproved, requiredfiletype off                          " required" set the runtime path to include Vundle and initializeset rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()" alternatively, pass a path where Vundle should install pluginsPlugin 'VundleVim/Vundle.vim'         "let Vundle manage Vundle, requiredPlugin 'flazz/vim-colorschemes'       "配色插件Plugin 'scrooloose/nerdtree'          "树形目录Plugin 'jistr/vim-nerdtree-tabs'      "多标签共用nerdtreePlugin 'ctrlpvim/ctrlp.vim'           "查找文件Plugin 'vim-scripts/indentpython.vim' "自动缩进Plugin 'vim-syntastic/syntastic'      "静态语法检测Plugin 'nvie/vim-flake8'              "添加PEP8代码风格检查" All of your Plugins must be added before the following linecall vundle#end()                     " requiredfiletype plugin indent on             " required" To ignore plugin indent changes, instead use:"filetype plugin on"" Brief help" :PluginList       - lists configured plugins" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate" :PluginSearch foo - searches for foo; append `!` to refresh local cache" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal"" see :h vundle for more details or wiki for FAQ" Put your non-Plugin stuff after this line" System vimrc file for MacVim"" Maintainer:   Bjorn Winckler <bjorn.winckler@gmail.com>" Last Change:  Sat Aug 29 2009syntax enable                           "语法高亮set background=dark                     "设置背景色colorscheme Monokai                     "默认配色set nocompatible                        "关闭对 vi 的兼容set nu                                  "设置行号" The default for 'backspace' is very confusing to new users, so change it to a" more sensible value.  Add "set backspace&" to your ~/.vimrc to reset it.set backspace+=indent,eol,start" Disable localized menus for now since only some items are translated (e.g." the entire MacVim menu is set up in a nib file which currently only is" translated to English)."静态语法检测let g:syntastic_lua_checkers = ['luacheck']let python_highlight_all=1let g:syntastic_always_populate_loc_list = 1let g:syntastic_auto_loc_list = 1let g:syntastic_check_on_open = 1let g:syntastic_check_on_wq = 0"NERDTree快捷键map <F2> :NERDTreeToggle<CR>            "设置f2为打开、关闭NERDTree快捷键let g:NERDTreeWinPos="left"             "靠左显示let g:NERDTreeWinSize=25                "最大长度let g:NERDTreeShowLineNumbers=1         "显示行号let NERDTreeShowHidden=1                "是否显示隐藏文件let g:nerdtree_tabs_open_on_console_startup=1 " 在终端启动vim时,共享NERDTree,用于打开多个标签页的情况let NERDTreeIgnore=['\.pyc','\~$','\.swp'] " 忽略一下文件的显示" let NERDTreeShowBookmarks=1           " 显示书签列表let NERDTreeHighlightCursorline = 1     "高亮当前行let g:NERDTreeAutoCenter=1let g:neocomplcache_enable_at_startup = 1 "从NERDTree打开文件后自动关闭NERDTreelet g:NERDTreeQuitOnOpen=1" 在终端启动vim时,共享NERDTree" 显示书签列表"autocmd vimenter * NERDTree            "打开vim默认打开nerdtree"autocmd VimEnter * wincmd p            "打开vim默认光标位置在文件中" Highlight current lineau WinLeave * set nocursorline nocursorcolumnau WinEnter * set cursorline cursorcolumnset cursorline cursorcolumn" Display tabs at the beginning of a line in Python mode as bad.au BufRead,BufNewFile *.py,*.pyw match CursorLineNr /^\t\+/" Make trailing whitespace be flagged as bad.au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match CursorLineNr /\s\+$/"设置缩进set tabstop=4set softtabstop=4set shiftwidth=4set textwidth=120set showmatchset expandtabset autoindentset fileformat=unixset nohlsset guifont=Consolas:h14set encoding=utf-8set langmenu=zh_CN.UTF-8"解决菜单乱码source $VIMRUNTIME/delmenu.vimsource $VIMRUNTIME/menu.vim"解决consle输出乱码language messages zh_CN.UTF-8"默认最大化窗口打开au GUIEnter * simalt ~x 

安装 Vundle

  • 1、可以理解为 linux 下的 install,安装了 Vundle 之后,可以很方便的安装其他插件,Vundle
  • 2、先从 github上 clone Vundle相关文件,git clone https://github.com/VundleVim/Vundle.vim.git xx/.vim/bundle/Vundle.vim(~为用户目录)
  • 3、打开 .vimrc 文件:添加一下代码,然后打开 vim,输入 :PluginInstall
call vundle#begin()Plugin 'VundleVim/Vundle.vim'call vundle#end()

配色

之前习惯使用 sublime,安装完成 vim 之后发现颜色很不习惯,那就先解决一下配色问题。
  • github上有篇文章详细介绍了配色问题(链接),
  • 不过上面我们讲到能使用 Vundle 来安装插件,其实很简单就是新增一项Plugin ‘flazz/vim-colorschemes’,然后重启 vim,执行 :PluginInstall 就会自动安装
  • 安装完成之后,你会发现供选择的配色实在是太多了,上下拖动很麻烦,我这里是把大部分都删除了,只保留了molokai.vimMonokai.vim 两种。
  • 当前你可以挑选一款自己喜欢的颜色,然后每次打开 vim 是是用该颜色:只需要在.vimrc 中添加 colorscheme Monokai

树形目录插件(NERDTree)

有了 NERDTree 之后,就能像 sublime 一样能一览工程目录
  • 1、首先安装,在 .vimrc 中添加 Plugin ‘scrooloose/nerdtree’
  • 2、其他相关的配置参考上面 .vimrc 文件中 NERDTree快捷键
  • 3、下面列出常用的 NERDTree 命令:
?: 快速帮助文档o: 打开一个目录或者打开文件,创建的是buffer,也可以用来打开书签go: 打开一个文件,但是光标仍然留在NERDTree,创建的是buffert: 打开一个文件,创建的是Tab,对书签同样生效T: 打开一个文件,但是光标仍然留在NERDTree,创建的是Tab,对书签同样生效i: 水平分割创建文件的窗口,创建的是buffergi: 水平分割创建文件的窗口,但是光标仍然留在NERDTrees: 垂直分割创建文件的窗口,创建的是buffergs: 和gi,go类似x: 收起当前打开的目录X: 收起所有打开的目录e: 以文件管理的方式打开选中的目录D: 删除书签P: 大写,跳转到当前根路径p: 小写,跳转到光标所在的上一级路径K: 跳转到第一个子路径J: 跳转到最后一个子路径<C-j>和<C-k>: 在同级目录和文件间移动,忽略子目录和子文件C: 将根路径设置为光标所在的目录u: 设置上级目录为根路径U: 设置上级目录为跟路径,但是维持原来目录打开的状态r: 刷新光标所在的目录R: 刷新当前根路径I: 显示或者不显示隐藏文件f: 打开和关闭文件过滤器q: 关闭NERDTreeA: 全屏显示NERDTree,或者关闭全屏

静态语法检测

  • 1、安装 syntastic, 包含了 Lua、和 Python 的语法检测。
  • 2、参考 .vimrc 中的静态检测配置

多标签页

:tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab:tabc       关闭当前的tab:tabo       关闭所有其他的tab:tabs       查看所有打开的tab:tabp      前一个:tabn      后一个

多窗口

  • 创建多窗口
:split 将当前窗口分割成上下两半,他们显示的是相同缓冲区的内容(同一个文件):vsplit 将当前窗口分割成左右两半,他们显示的是相同缓冲区的内容(同一个文件):split otherfile 将当前窗口分割成上下两半,他们显示的是当前的文件和和新指定的文件。:vsplit otherfile 将当前窗口分割成左右两半,他们显示的是当前的文件和和新指定的文件。
  • 在窗口之间切换
按住Ctrl + W,然后再加上h, j, k, l,分别表示向左、下、上、右移动窗口。按住Ctrl + W,然后再加上t, b, p,分别表示向最左上角、最右下角、前一个访问的窗口。按住Ctrl,然后再加上方向键,也可以移动窗口。

autocmd 的用法

  • 可以添加一些命令,跟事件绑定,目前尚未研究清楚
  • 参考

推荐几个博客用来参考

  • 命令介绍
  • https://yq.aliyun.com/articles/47499
  • https://www.cnblogs.com/cjy15639731813/p/5886158.html
原创粉丝点击