vim-常用技巧


一、常用配置
普通用户的vim配置在vim ~/.vimrc:

set mouse-=a
syntax on               "语法高亮
set nocompatible        "去除VI一致性,必须要添加
set nu                  "显示行号
set autowrite           "自动保存
set ruler               "打开状态栏标尺
set cursorline          "突出显示当前行
set smartindent         "开启新行时使用智能自动缩进
set hlsearch            "搜索高亮
set incsearch           "渐进式搜索
set nobackup            "不需要备份文件
set noswapfile          "不创建临时交换文件
set nowritebackup       "编辑的时候不需要备份文件
set noundofile          "不创建撤销文件

" Tab键更改为2个空格
"set ts=2
"set sw=2
"set expandtab
"set autoindent

" 配置tags查找路径
set tags=./tags,tags;$HOME

"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endfunction

filetype plugin indent on       "开启插件
set completeopt=longest,menu    "打开文件类型检测, 加了这句才可以用智能补全
"打开文件默认回到上次编辑的地方
"au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif

二、搜索和替换

/123		#搜索123字符串
/123\c		#不区分大小写搜索123  
/123\>		#搜索以123作为结尾的字符串
/\<123\>	#搜索以123作为开头和结尾的字符串
/123$		#搜索作为行尾的字符串123
/^123$		#搜索作为行首和行尾的字符串123
/123\|456	#同时搜索123和456两个字符串
:s/123//n	#统计光标所在行出现123字符串的个数
:l1,l2s/123//n	#l1~l2行
:%s/123//n		#所有行
:s/123/456/g	#光标所在行的所有123被替换为456
    % 所有行  
    g 单行内所有匹配项(默认只匹配单行第一个) 
    i 忽略大小写  
    c 确认是否替换
    n 只查找个数

三、复制、粘贴、删除

#d是剪切(删除),y是复制,p是粘贴。d和y的结果都可以用p粘贴
dd/yy		#光标所在行
ndd/nyy		#光标所在行开始,向后n行
de/ye		#光标所在字符开始,向右最近一个单词的最后一个字符
db/yb		#光标所在字符上一个字符开始,向左最近一个单词的第一个字符
d0/y0		#光标所在字符上一个字符开始,到所在行首
d$/y$		#光标所在字符开始,到所在行尾
dgg/ygg		#光标所在行开始,到文件首行
dG/yG		#光标所在行开始,到文件尾行
d%/y%		#光标所在括号开始,到匹配括号结束
p			#粘贴到光标所在字符/行的下一位置
P			#粘贴到光标所在字符/行的上一位置

四、多窗口文件处理

#打开多个窗口
vim -O file1 file2		#垂直线分割两个窗口
vim -o file1 file2		#水平线分割两个窗口
vim -O3 file1 file2 	#打开三个,其中一个闲置
:vsplit 或 :vs file		#在窗口中垂直线分割一个新的窗口
:split 或 :sp file		#在窗口中水平线分割一个新的窗口

#在窗口间移动光标
Ctrl + w + w		#所有窗口中循环移动
Ctrl + w + h		#向左移动
Ctrl + w + j		#向下移动
Ctrl + w + j		#向上移动
Ctrl + w + l		#向右移动


#移动窗口
Ctrl + w + r		#向右或向下方交换窗口
Ctrl + w + R		#向左或向上交换窗口

#改变窗口大小
Ctrl + w + =		#所有窗口调整至相同尺寸(平均划分)
Ctrl + w + -		#当前窗口的高度减少一行,也可在ex命令:resize -n明确指定减少尺寸
Ctrl + w + +		#当前窗口的高度增加一行,也可在ex命令:resize +n明确指定增加尺寸
Ctrl + w + < 		#当前窗口的宽度减少
Ctrl + w + > 		#将当前窗口的宽度增加
Ctrl + w + |		#将当前窗口的宽度调到最大,也可用ex命令:vertical resize n明确指定改变宽度

五、多窗口缓存区

:badd				#增加缓冲区
:ls					#列示缓冲区状态
:buffer/:b file_name/:b number		#编辑指定缓冲区
:ball				#编辑所有缓冲区,多个窗口打开
:bnext/:bn			#到下一个缓冲区
:bprevious/:bp		#到上一个缓冲区
:blast/:bl			#到最后一个缓冲区
:bmodified/:bm		#到修改过的缓冲区
:bdelete/:bd num	#删除缓冲区
:bunload			#卸载缓冲区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值