vim使用手册

vim 使用方法

1 配置vim

  • 打开vimrc
vim ~/.vimrc
  • 写入配置信息
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin indent on

"scope-------------------------------------------------------------
if has("cscope")
        set csprg=/usr/bin/cscope
        set csto=1
        set cst
        set nocsverb
        if filereadable("cscope.out")
                cs add cscope.out
        endif
        set csverb
endif


:set cscopequickfix=s-,c-,d-,i-,t-,e-
nmap <silent> <F5> : cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <silent> <F6> : cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <silent> <F7> : cs find c  <C-R>=expand("<cword>")<CR><CR>

"tagbar----------------------------------------------------------
Plugin 'majutsushi/tagbar' " Tag bar"
let g:tagbar_width=25
autocmd BufReadPost *.cpp,*.c,*.h,*.cc,*.cxx call tagbar#autoopen()

"nerdtree--------------------------------------------------------
Plugin 'scrooloose/nerdtree'
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
let NERDTreeWinSize=15
let NERDTreeShowLineNumber=1
let NERDTreeAutoCenter=1
let NERDTreeShowBookmarks=1

"ALE(asynchronization lint Engine)-------------------------------
Plugin 'w0rp/ale'
let g:ale_sign_column_always = 1
let g:ale_sign_error = 'x'
let g:ale_sign_warning = 'w'
let g:ale_echo_msg_format = '[%linter%] %code: %%s'
let g:ale_lint_on_insert_leave = 1
let g:ale_lint_on_text_changed = 'normal'
let g:ale_c_gcc_options = '-Wall -O2 -std=c99'
let g:ale_cpp_gcc_options = '-Wall -O2 -std=c++14'
let g:ale_c_cppcheck_options = ''
let g:ale_cpp_cppcheck_options = ''

"youcompleteme---------------------------------------------------
Plugin 'Valloric/YouCompleteMe'
let g:ycm_server_python_interpreter='/usr/bin/python'
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'

"vim-gutentags---------------------------------------------------
Plugin 'ludovicchabant/vim-gutentags'
let g:gutentags_project_root=['.root','.svn','.git','.hg','.project']
let g:gutentags_ctags_extra_args=['--fields=+niazS','--extra=+q']
let g:gutentags_ctags_extra_args+=['--c++-kinds=+px']
let g:gutentags_ctags_extra_args+=['--c-kinds=+px']

"Others---------------------------------------------------------
set nu!
syntax enable
syntax on
colorscheme desert
:set autowrite

2 vim 命令

2.1 移 动

  • h,l,j,k: 左右下上
  • w,b: 移动到下/上一个单词
  • nG(n Shift+g): 游标移动到第 n 行
  • gg: 游标移动到第一行
  • G(Shift+g): 游标移动到最后一行
  • f+字母 向后搜索 字母并跳转到第一个匹配的位置
  • F+字母 向前搜索字母并跳转到第一个匹配的位置

2.2 快速退出

  • 普通模式下输入Shift+zz即可保存退出vim

2.3 进入插入模式

  • i: 在当前光标处进行编辑
  • I, A: 在行首/末插入
  • a: 在光标后插入编辑
  • o, O: 在当前行后/前插入一个新行
  • cw: 删除一个单词,同时进入插入模式

2.4 删除

  • x: 反退格键(Delete键), X 退格键(Backspace键)
  • dw: 删除一个单词(不适用中文)类似于上一节说的cw,只是删除后还在普通模式
  • d$: 删除至行尾,d^ 删除至行首
  • dG: 从当前行删除到文档结尾处, d1G 从当前行删至文档首部
  • dd: 删除一行
  • NOTE:
  • 前缀(操作):d代表删除
  • 中缀(行号)
  • 后缀(定位):d代表行,G代表尽头, $代表行尾,^代表行首,w代表单词, e当前单词末尾

2.5 复制

复制为y,后可以接定位符

  • yy: 复制游标所在的整行(3yy表示复制3行)
  • y^: 复制至行首,或y0,不含光标所在处字符
  • y$: 复制至行尾,含光标所在处字符
  • yw: 复制一个单词
  • y2w: 复制两个单词
  • yG: 复制至文本末
  • y1G: 复制至文本开头
  • :9, 15 copy 16 或 :9, 15 co 16: 第9行到第15行的文本内容复制到第16行的后面
  • :9, 15 move16 或 :9, 15 m 16: 第9行到第15行的文本内容移动到第16行的后面

2.6 粘贴

  • p: 粘贴至光标后(下)
  • P: 粘贴至光标前(上)

2.7撤销

  • u: 撤销命令
  • ctrl+r: 撤回之前的命令

2.8 查看路径

  • 首先,在命令行模式(Esc)下按1
    然后,ctrl + G

2.9替换命令

  • 在10 - 20行添加 // 注释
:10,20s#^#//#g
  • 在10 - 20行删除 // 注释
:10,20s#^//##g
  • 在10 - 20行添加 # 注释
:10,20s/^/#/g
  • 在10 - 20行删除 # 注释
:10,20s/^#//g
  • 全局替换
:%s/source/target/g
  • 批量注释
:起始行号,结束行号s/^/注释符/g
  • 取消注释:
:起始行号,结束行号s/^注释符//g
  • 如果匹配//那么使用 #作分隔符,这样不需要对/作转义处理

2.10 vim中打开另一个文件

  • 垂直切分窗口
:vsp +文件路径   //vsplit + 文件路径
:vsp  /etc/httpd/conf.d/vhost.conf
  • 水平切分窗口
:sp  +文件路径  //split + 文件路径
:sp /etc/httpd/conf.d/vhost.conf

2.11 vim中文本对齐

  • 方法一:

命令模式下:=:1,$

  • 方法二:

gg(把关标定位到最上面),V(进入VISUAL模式),shift+g(选中整篇文本),然后=

  • 方法三:

gg=G

2.12 大小写转化

  • U 将可视模式下选择的字母全改成大写字母
  • u 将可视模式下选择的字母全改成小写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值