- 基本存活操作,在normal模式下面的基本操作
i #进入插入模式
:wq #保存 + 推出
yy #复制
p #粘贴
dd #剪切 #对于yy,p,dd前面可以加上一个数字 ,比如3yy表示复制三行
-
熟悉了基本的操作,就可以在没有图形界面的终端上面活下来了。下面就是进阶的几个操作。(normal模式下的操作)
2.1 移动光标: 行号 #跳转到某一行 :0 #跳转到第0行 #补充gg 也是跳转到第一行 :$ #跳转到最后一行 #补充G也是跳转到最后一行 /pattern #搜索的pattern的字符串 (如果找到多个 按n可以跳到下一个)
2.2 撤销
u #undo ctrl + r #redo
2.3 打开/保存/退出
:w #保存 :wq #保存并退出 :e <path/file> #打开一个文件 :saveas <path/file> #另存为
-
更高,更快,更强
3.1 更加有效的移动光标gg #光标移动到第一行 G #光标移动到最后一行 w #移动到下一个字符的起点 e #移动到下一个单词的结尾
3.2 快操作
ctrl + v #开始块操作 向上/下 移动光标 # I <插入的内容> <ESC> #按ESC键来为每一行生效
这个地方在插入内容之后,需要按两次esc。
删除
ctrl + v d
3.3 分屏
vsp # ctrl + w #切换分屏
粘贴代码的时候,有注释的时候,会出现缩进错误
解决方法:
set paste # 进入insert(paste)的模式
- 插件
推荐一个vim插件 vimplus , https://github.com/zhaozhengcoder/vimplus
vim插件的使用
vim 加上插件之后,简直太神奇了,感觉生产力爆表 !
我选择使用vundle 插件管理器 来管理vim的插件,然后使用了nerdtree 和 一些颜色,编码,缩进,括号匹配的配置。
- 安装vundle
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
1.1 下载一个主题(默认主题换成 molokai 主题)
curl -sL https://raw.github.com/tomasr/molokai/master/colors/molokai.vim > molokai.vim
为了不与默认的 vim 配置搞混乱,
我建议在家目录下创建 .vim 配置文件目录,仅对当前用户生效:
mkdir -p ~/.vim/colors/ && mv molokai.vim ~/.vim/colors/
然后创建 ~/.vim/vimrc 配置文件,启用 molokai 主题:
vim ~/.vim/vimrc,添加或修改colo molokai即可生效
- 然后创建一个 ~/.vimrc 的文件,添加自己需要的插件和配置
set nocompatible " 关闭兼容模式 filetype off " 关闭对文件类型的自动检测
set rtp+=~/.vim/bundle/Vundle.vim " 加入运行时路径
call vundle#begin() " 初始化
" 插件列表开始
Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs' " NERDTree 共享插件
Plugin 'kien/ctrlp.vim' " 文件快速搜索插件
Plugin 'taglist.vim' " ctags + taglist 插件
" 插件列表结束
call vundle#end() " 完成
filetype plugin indent on " 打开文件类型检测
" 256-color
set t_Co=256
" molokai 主题
colo molokai
" 设置字符编码 UTF-8
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
" 代码设置
syntax enable " 启用语法高亮
syntax on " 打开语法高亮
set showmatch " 自动匹配括号
" set cursorcolumn " 显示光标所在列
set cursorline " 显示光标所在行
set guicursor+=a:blinkon0 " 设置光标不闪烁
set showcmd " 显示当前执行的命令
" 四格缩进
set expandtab
set shiftwidth=4
set tabstop=4
set softtabstop=4
"set nu " 启用行号显示
"set autoindent " 启用自动对齐
"set smartindent " 启用智能对齐
set hlsearch " 启用高亮查找
set incsearch " 启用增量查找
" NERDTree 的使用 ,F2弹出目录
map <F2> :NERDTreeToggle<CR>
- 配置完成后打开VIM就可以开始使用了,用到下面命令:
:PluginList:打开插件列表
:PluginInstall:安装插件
:PluginSearch foo:搜索插件,找到之后可以选择安装
:PluginClean:清理不用的插件(这个不是太懂)
- 最后举个例子,当你想安装winmanager插件时:
1. 在.vimrc中添加Plugin 'winmanager'
2. 打开vim
3. 执行:PluginList就可以看到winmanager插件
4. 执行:PluginInstall进行安装
- 如何使用NERDTree
ctrl + w + h 光标 focus 左侧树形目录
ctrl + w + l 光标 focus 右侧文件显示窗口
ctrl + w + w 光标自动在左右侧窗口切换
ctrl + w + r 移动当前窗口的布局位置
更多 : http://yang3wei.github.io/blog/2013/01/29/nerdtree-kuai-jie-jian-ji-lu/
补充:
- YouCompleteMe 插件(一个自动补全的插件)安装
YouCompleteMe 是一个可以自动补全的插件,这个自动补全的功能对开发来说非常非常的重要。
安装过程如下:
- vim的版本是要在7.3以上的(vim现在已经是vim 8 了)。首先第一步就是查看版本 or 升级vim。
查看版本
dpkg -s vim | grep 'Version'
or
vim --verison
升级
sudo add-apt-repository ppa:fcwu-tw/ppa
sudo apt-get update
sudo apt-get install vim
- 安装需要的依赖
sudo apt-get install libncurses5-dev libgnome2-dev
libgnomeui-dev libgtk2.0-dev libatk1.0-dev
libbonoboui2-dev libcairo2-dev libx11-dev
libxpm-dev libxt-dev python-dev ruby-dev mercurial cmake
- 通过Vundle安装它在~/.vimrc文件中,在call vundle#begin()和call vundle#end()之间,添加这行Plugin 'Valloric/YouCompleteMe'.
在Vim中输入: PluginInstall命令来安装此插件.(这个插件的安装,可能会比较慢,请耐心等待.)
- 然后,我们需要执行下面的这两条命令,使其真正可用:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
- 报错
在本地的服务器上面安装好了,但是在服务器(ubuntu 14)上面装的时候,就处理问题。
YouCompleteMe unavailable: requires Vim compiled with Python 2.x support
参考了这个的解决办法:
https://github.com/Valloric/YouCompleteMe/issues/1866
解决办法:
sudo apt-get install vim-nox
tips
- 关闭vim的哔哔的提示音
:set noeb
这个在我的vim上面没有用,如果是gvim的话,需要这样
:set vb t_vb=
- nerdtree使用
这样打开vim后,只要按键盘上的F10就可以显示和隐藏NERDTree的文件浏览了。
" NERDTree
map <F10> :NERDTreeToggle<CR>
参考:
vim插件 :
https://www.zfl9.com/vim.html
https://wsztrush.github.io/工具/2015/06/10/VIM.html
youcompleteme 参考教程 : https://www.jianshu.com/p/75172a88355f
https://github.com/zhaozhengcoder/learn-vim
https://coolshell.cn/articles/5426.html
nerdtree 教程 : https://my.oschina.net/coolfire368/blog/176807