vim

VIM

模式切换

按 i 进入输入模式

按 v 进入可视模式,此时可以进行选择文本

按 shift + v 进入可视模式,此时可以按行进行选择文本

​ 按 : 后进行输入操作指令按下回车后,这些指令将应用到每一行

按 ctrl+ v 进入可视块模式,此时可以垂直选择文本

按 ESC 退出输入模式

普通模式下按 :cmd 回车后执行vim的cmd指令

​ 按 :w 保存

​ 按 :q 退出

​ 按 /word 查找单词

​ 按 :color 选择配色

输入模式切换为普通模式后:

​ 按 h j k l 移动光标

​ 按 w 光标以单词的间隔移动

​ 按 a 在光标下一个地方插入

​ 按 shift + a 在当前行尾插入字符

​ 按 shift + i 在当前行前插入字符

​ 按 shift + o 在下一行开始插入

​ 按 x 删除光标所在一个字符

​ 按 dd 剪切该行

​ 按 p 粘贴

​ 按 d n -> 删除光标右面n个字符,左边同理

​ 按 y w -> 复制光标右边一个单词

​ 按 y n -> 复制光标右边n个字符

​ 按 c w 修改光标右边一个单词

​ 按 c i 修该光标所在单词

​ 按 c i " 修改双引号内的内容

​ 按 f v 将光标移动到光标下一个v的位置

​ 按 f y : 复制到: (y 改成 c d 同理)

​ 按 n/N 切换上一条/下一条搜索

配置文件

vim每次在启动时,都会读取配置文件

修改配置文件 vi .vimrc 编辑配置文件(在工作目录下)

let mapleader=" "	"将leader键设为空格键
let mapleader=" "   "将leader键设为空格键
syntax on           "开启高亮
set number          "显示行号
set relativenumber  "显示相对行号
set cursorline      "显示输入提示线
set wrap            "字符不超出窗口
set wildmenu        "弹出指令选择框
set hlsearch        "高亮搜索结果
exec "nohlsearch"   
"配合第一行
set incsearch       "实时显示搜索结果
set ignorecase      "搜索不区分大小写
set smartcase       "智能区分大小写

"设置可用鼠标操作,字符编码等   管它为什么,下面粘贴一下好了
set nocompatible
filetype on
filetype indent on
filetype plugin on
filetype plugin indent on
set mouse=a
set encoding=utf-8
let &t_ut=''
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set list
set listchars=tab:▸\ ,trail:▫
set scrolloff=5
set tw=0
set indentexpr=
set backspace=indent,eol,start
set foldmethod=indent
set foldlevel=99
let &t_SI = "\]50;CursorShape=1\x7"
let &t_SR = "\]50;CursorShape=2\x7"
let &t_EI = "\]50;CursorShape=0\x7"
set laststatus=2
set autochdir
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

"noremap a b    更改键位vim会将a键位当作b键位所执行的功能
noremap  :nohlsearch	"配合第一行,按下空格回车取消搜索后的高亮
noremap j h         "LIFE
noremap l l         "RIGHT
noremap k j         "DOWN
noremap o k         "UP
noremap J 5j        "5DOWN
noremap K 5k        "5UP
map S :w        "SAVE
map s          "NOP
map Q :q        "QUIT
map R :source $MYVIMRC	"立刻加载配置文件
"设置分屏
map sd :set splitright:vsplit
map sa :set nosplitright:vsplit
map sw :set nosplitbelow:split
map sx :set splitbelow:split
"设置分屏后互相切换编辑区域
map w l
map x k
map a h
map d j
"分屏后:e xxxx(path)来打开新文件

"切换Tab
map tn :tabe
map ta :-tabnext
map td :+tabnext

安装插件

访问https://github.com/junegunn/vim-plug安装vim-plug

"插件
call plug#begin('~/.vim/plugged')

"Color and font
Plug 'vim-airline/vim-airline'
Plug 'connorholyday/vim-snazzy'

"File navigation
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'Xuyuanp/nerdtree-git-plugin'

"Auto Complete
Plug 'Valloric/YouCompleteMe'

"Error checking
Plug 'w0rp/ale'

"Taglist
Plug 'majutsushi/tagbar', { 'on': 'TagbarOpenAutoClose' }

"Autoclt
Plug 'Raimondi/delimitMate'

call plug#end()

"Color and font
color darkblue
colorscheme snazzy

"File navigation
map tt :NERDTreeToggle

"Auto Complete
autocmd InsertLeave * if pumvisible() == 0|pclose|endif	"离开插入模式后自动关闭预览窗口
let g:ycm_collect_identifiers_from_tags_files=1	" 开启 YCM 基于标签引擎
let g:ycm_min_num_of_chars_for_completion=1	" 从第2个键入字符就开始罗列匹配项
let g:ycm_cache_omnifunc=0	" 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_seed_identifiers_with_syntax=1	" 语法关键字补全
inoremap  
"在注释输入中也能补全
let g:ycm_complete_in_comments = 1
"在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
"注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0
nnoremap g:YcmCompleter GoToDefinitionElseDeclaration
"跳转到定义处

"Taglist
map ff :TagbarOpenAutoClose

"ale-setting
let g:ale_set_highlights = 0
"自定义error和warning图标
let g:ale_sign_error = '✗'
let g:ale_sign_warning = '⚡'
"在vim自带的状态栏中整合ale
let g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK']
"显示Linter名称,出错或警告等相关信息
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
"打开文件时不进行检查
let g:ale_lint_on_enter = 0
"普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告
nmap pw (ale_previous_wrap)
nmap px (ale_next_wrap)
"s触发/关闭语法检查
nmap s :ALEToggle
"d查看错误或警告的详细信息
nmap d :ALEDetail
"使用clang对c和c++进行语法检查
let g:ale_linters = {
\   'c++': ['clang'],
\   'c': ['clang'],
\}

然后普通模式下输入PlugInstall将会自动安装好插件

你可能感兴趣的:(vim)