生产工具之——我的vim配置

~/.vimrc文件配置

" 按键映射
map J 5j
map K 5k
map H 7h
map L 7l
inoremap jj <esc>

set clipboard+=unnamed  " 与vim共享剪切板
setlocal noswapfile " 不要生成swap文件
set bufhidden=hide " 当buffer被丢弃的时候隐藏它
colorscheme evening " 设定配色方案
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
set backupcopy=yes " 设置备份时的行为为覆盖
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start " 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ Ln\ %l,\ Col\ %c/%L%) " 设置
在状态行显示的信息
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=1 " 设置折叠层数为 1
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> " 用空格键来开关折叠

常用操作

按键 意义
基本操作
jkhl 下上左右
^ 跳到行首
$ 跳到行末
0 跳到行首(更好敲
g_ 跳到行末(更好敲
u undo
. redo
ctrl + r redo——重复上一个动作
ctrl + n 在插入模式下,自动补全功能
Ncommand 重复某个命令N次(例如:100iabcd,会执行100遍iabcd,即写100遍abcd)
:!command 不退出vim下执行命令
搜索替换
/word 搜索word
n 、 N 上一个 、 下一个
:n1,n2s/word1/word2/g [n1,n2]行之间的word1替换成word2
:1,$s/word1/word2/g或者 :%s/word1/word2/g 从第一行到最后一行word1换成word2
:1,$s/word1/word2/gc或者 :%s/word1/word2/gc 从第一行到最后一行word1换成word2,且在取代之前显示提示字符让用户确认(按y确认)
:n1,n2s/^/#/g 在[n1,n2]行前面加上 # (批量加注释)
:n1,n2s/#//g 在[n1,n2]行前面删掉#
文本编辑
v 进入编辑模式(普通选中模式)
ctrl + v 进入编辑模式(块操作模式)(竖着选中)
I (大写的 i ) 在块选择下,在前插入
A 在块选择下,最后面追加插入
$ 对选择块的每行的末尾(每行末尾可能不在一个竖线上)
录制宏操作
qa 开始录制
q 结束录制
ctrl + a 给光标处的数(连续的数字)增加1
@a 重复录制的操作(重复100遍就是100@a)
例子1 写入自增1到100
  对于只有一个1的文本:
  输入 qayyp<C-a>q  ,  完成录制
  输入 98@a   ,   完成重复
上一篇:leetcode 165. 比较版本号


下一篇:将一个数字划分成树状