一、Vim的安装及其简单配置
系统:ubuntu16.04
1.安装
sudo apt-get install vim-gtk
2.配置
sudo vim /etc/vim/vimrc
去掉 syntax on 前的注释
在最后一行输入:
set nu // 在左侧行号
set tabstop=4 //tab 长度设置为 4
set nobackup //覆盖文件时不备份
set cursorline //突出显示当前行
set ruler //在右下角显示光标位置的状态行
set autoindent //自动缩进
(汉字部分不要输入)
####自动补全括号和引号
inoremap ( ()<Esc>i
inoremap [ []<Esc>i
inoremap { {<CR>}<Esc>O
autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR>
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
inoremap } <c-r>=CloseBracket()<CR>
inoremap " <c-r>=QuoteDelim('"')<CR>
inoremap ' <c-r>=QuoteDelim("'")<CR>
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
function CloseBracket()
if match(getline(line('.') + 1), '\s*}') < 0
return "\<CR>}"
else
return "\<Esc>j0f}a"
endif
endf
function QuoteDelim(char)
let line = getline('.')
let col = col('.')
if line[col - 2] == "\\"
return a:char
elseif line[col - 1] == a:char
return "\<Right>"
else
return a:char.a:char."\<Esc>i"
endif
endf
2.1插件
Vundle
'git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim'
若提醒目录不存在请先自行新建目录:
'cd ~
mkdir .vim
cd .vim
mkdir bundle'
然后需要在.vimrc文件中添加一些配置:
'filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin '你的插件'
call vundle#end()
filetype plugin indent on'
然后在vim里执行
':PluginInstall'
'wq'保存退出
YouCompleteMe
- 安装
Plugin 'Valloric/YouCompleteMe'
- 编译
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-comleter
参数 --clang-completer是为了加上C系列语言的自动补全。
提示错误:ERROR: Unable to find executable 'cmake'. CMake is required to build ycmd
安装cmake: 'sudo apt-get install build-essential cmake'
配置vimrc
"默认配置文件路径"
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解释器路径"
let g:ycm_path_to_python_interpreter='/usr/local/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=2
"补全后自动关机预览窗口"
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> <CR> pumvisible() ? '<C-y>' : '\<CR>'
"上下左右键行为"
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>'
二、Vim具有6种基本模式:
1.普通模式
普通模式中,用编辑命令,比如移动光标,删除文本等等。是Vim启动后默认的模式。
常用的命令有:
'a'(append/追加)键或者'i'(insert):在普通模式下进入插入模式。
'dd':删除当前行
'dj':
'h':左
'l':右
'j':下
'k':上
'w':移动到下一个单词
'b':移动到上一个单词
1.1删除文本命令
'x':删除游标所在字符
'dd':删除整行
'X':删除游标所在前一个字符
'dw':删除一个单词(不适用中文)
'D/d$':删除至行尾
'd^':删除至行首
'dG':删除到文档结尾处
'd1G'删至文档首部
'u':撤销操作
'ctrl+r':恢复撤销
1.2重复上次命令
'.'(小数点):表示重复上一次的命令操作
'N<command>':重复N次command命令
1.3行间跳转
'gg':游标移动到第一行
'G':游标移动到最后一行
'nG':游标移动到第n行
'ctrl+o':快速回到上一次(跳转前)光标所在位置。
1.4行内跳转
'w':到下一个单词开头
'e':到当前单词结尾
'b':到前一个单词的开头
'ge':到前一个单词的结尾
'0或^':到行头
'$':到行尾
'f<字母>':向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
'F<字母>':向前搜索<字母>并跳转到第一个匹配的位置
't<字母>':向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
'T<字母>':向前搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
'~':将字母变成大写或者小写
1.5复制及粘贴文本
'y':复制
'yy':复制游标所在的整行(3yy表示复制3行)
'y^':复制到行首,或y0。不含光标所在处字符
'y$':复制到行尾。含光标处字符
'yw':复制一个单词
'y2w':复制两个单词
'yG':复制到文本末
'y1G':复制到文本开头
'p':粘贴到光标后(下)
'P':粘贴到光标前(上)
1.6剪切及粘贴
'dd':就是剪切
'p':粘贴
利用ddp可以实现交换上下行
1.7快速缩进
'>>':整行向右缩进
'<<':整行向左回退
':set shiftwidth=N':设置缩进值(shiftwidth可以简写为'sw')
1.8调整文本位置
':ce':(center)本行内容居中
':ri':(right)本行文本靠右
':le':(left)本行文本靠左
1.9查找
'/+查找内容':向下查找
'?+查找内容':向上查找
进入查找之后,输入'n'继续查找、'N'反向查找:
1.10多文件编辑
'$ vim 1.txt 2.txt':同时创建两个文本
':n':编辑2.txt
':n!':强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件
'N':编辑1.txt
'N!':强制切换
':e 3.txt':打开新文件3.txt
':e#':回到前一个文件
':ls':可以列出以前编辑过的文档
':b 2.txt'(或者编号):可以直接进入文件2.txt编辑
':bd 2.txt'(或者编号):可以直接删除以前编辑过的列表中的文件项目
':e! 4.txt':新打开4.txt,放弃正在编辑的文件
':f':显示正在编辑的文件名
':f new.txt':改变正在编辑的文件名为new.txt
1.11插入模式
在这个模式下,可以编辑文本。在插入模式下,可以按Esc返回普通模式。
'i': 在当前光标前进行编辑
'I':在行首插入
'A':在行末插入
'a':在光标后插入编辑
'o':在当前行后插入一个新行
'O':在当前行前插入一个新行
'cw'i:替换从光标所在的位置后到一个单词结尾的字符
3.选择模式
4.命令行模式
':':普通模式下,会进入命令行模式
'wq':保存并退出
'x':保存并退出
'wq':保存并退出
'wq!':保存并强制退出
'q!':强制退出,不保存
'q':退出
'w <文件路径>':另存为
'saveas 文件路径':另存为
5.可视模式
####可视模式命令简介
- 在普通模式下输入'v',进入字符选择模式,就可以移动光标,光标走过的的地方就会选取。再次按下v后就会取消选择。
- 在普通模式下输入'V',进入行选择模式。
- 在普通模式下输入'Ctrl + v',进入矩形区域选择。
- 上述命令可以结合,删除'd',和复制'y'使用。
####视窗操作
vim 可以在一个界面里打开多个窗口进行编辑。
':new'
'Ctrl+w':切换视窗
命令行模式下输入':sp 1.txt '打开新的水平分屏视窗来编辑1.txt
命令行模式下输入':vsp 2.txt '打开新的垂直分屏视窗来编辑2.txt
普通模式下'Ctrl+w s' 将当前窗口分割成两个水平的窗口
普通模式下'Ctrl+w v' 将当前窗口分割成两个垂直的窗口
普通模式下'Ctrl+w q' 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
普通模式下'Ctrl+w o' 打开一个视窗并且隐藏之前的所有视窗
普通模式下'Ctrl+w j' 移至下面视窗
普通模式下'Ctrl+w k' 移至上面视窗
普通模式下'Ctrl+w h' 移至左边视窗
普通模式下'Ctrl+w l' 移至右边视窗
普通模式下'Ctrl+w J' 将当前视窗移至下面
普通模式下'Ctrl+w K' 将当前视窗移至上面
普通模式下'Ctrl+w H' 将当前视窗移至左边
普通模式下'Ctrl+w L' 将当前视窗移至右边
普通模式下'Ctrl+w -' 减小视窗的高度
普通模式下'Ctrl+w +' 增加视窗的高度
6.创建加密文档
$vim -x file1 创建了一个叫‘file1’的加密文件
7.在Vim中执行外部命令
:!ls 用于显示当前目录的内容
:!rm FILENAME 用于删除名为 FILENAME 的文件
:w FILENAEM 可将当前Vim中正在编辑的文件另存为 FILENAME 文件
8.在Vim中查看帮助
- 普通模式下F1打开Vim帮助文档
- 命令行模式':shiftwidth'打开shiftwidth的帮助文档
- 命令行模式下输入:ver 显示版本及参数
9.功能设定
命令行模式下输入:set nu(显示行数),设定值退出vim后不会保存。
命令行模式下输入:set或者:se显示所有修改过的配置
命令行模式下输入:set all 显示所有的设定值
命令行模式下输入:set option? 显示option的设定值
命令行模式下输入:set nooption 取消当前设定值
10.功能的说明
命令行模式下输入:set autoindent(ai) 设置自动缩进
命令行模式下输入:set autowrite(aw) 设置自动存档,默认未打开
命令行模式下输入:set background=dark或light,设置背景风格
命令行模式下输入:set backup(bk) 设置自动备份,默认未打开
命令行模式下输入: set cindent(cin) 设置C语言风格缩进
`
网友评论