~/.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 , 完成重复