1、vim是linux和unix下使用最多的编辑器
2、只要用服务器,vim是必备技能
3、后端和运维工程师必须掌握的编辑器
4、可以纯键盘编码,提高编辑效率
通过a\i\o或者A\I\O进入
A:在改行的最后面进行插入
a:在当前字母后进行插入
I:在改行的最前面进行插入
i:在当前字母的前面进行插入
O:在当前行的上面进行插入
o:在当前行的下面进行插入
进入vim的模式
:wq 保存退出
:vs 竖分屏
:sp 横分屏
v:单选
V:行选
ctrl+v:与hjkl建结合使用,块状选取
ctrl+h
:快速删除一个字母
ctrl+w
:快速删除一个单词
ctrl+u
:快速删除当前行
注:以上命令在终端中也可以使用
在终端中,
ctrl+a
:到命令行首部
ctrl+e
:到命令行尾部
ctrl+b
:前移一个字符
ctrl+f
:后移一个字符
ctrl+[
:从insert切换到normal模式==Esc
gi
:从normal模式快速回到insert最后一次编辑的位置
1、w/W
w:移动到下一个单词词首
W:移动到下一个以空格分隔的单词词首
2、e/E
e:移动到下一个单词的词尾
E:移动到下一个以空格分隔的单词词尾
3、b/B
b:移动到上一个单词的词首
B:移动到上一个以空格分隔的单词的词首
**f{char}:**在一行中快速搜索一个字符,并跳转到它。
;下一个匹配
,上一个匹配
**F{char}:**反向搜索
**t{char}:**跳转到想要查找字符的前一个字符
$:快速到行尾
0:快速到行首
^:快速到行首的非空白字符
g_:快速到行尾的非空白字符
():在句子间移动
{}:在在段落中移动
gg/G: 文章首行/尾行
ctrl+o
快速返回到上次编辑的行
H/M/L 屏幕的头部/中部/尾部
ctrl+u
下一页
ctrl+f
上一页
zz:将光标至于屏幕中部
r:替换一个字符
R:替换多个字符
s:删除当前字符并进入插入模式 4s(删除4个字符)
S:删除当前行并进入插入模式
c:ct"-->删除到“
C:删除整行进行操作
/name
set hls:设置高亮
set incsearch:设置增量搜索
跳到下一个/上一个
进行当前单词的前向或者后向的匹配
:[range] s/{pattern}/{string}/[falgs]
flag:
g:globle全局范围
**c:confirm:**表示请求确认
**n:**只计数,不替换
:% s/name/good/g
:10,20 s/like/nameg
:% s/like//n
精确匹配:% s/\<stop\>/name/g
**buffer:**打开的一个文件的缓冲区
**windows:**buffer可视化的分割区域
**tab:**可以组织窗口为一个工作区
ls:
列出当前所有的缓冲区
bn:n
代表数字,跳转到指定的缓冲区
:bpre :bnext :bfirst :blast
的用法
:sp
水平划分窗口
:vs
竖直划分窗口
ctrl +w+whjkl
:实现窗口的切换
`ctrl +w+HJKL:实现窗口的移动
ctrl+=
:使所有的窗口等高等宽
:tabnew filename
在新的标签页中打开文件
gt
:跳到上一个标签页
gT
:跳到下一个标签页
vim中的文本对象是指一个单词或者一个句子或则一个段落
如何使用文本对象
[number]<command>[text object]
number表示数字
command表示命令d\c\y
text object:要操作的文本对象
yiw\ci(\ci"
个自的含义是什么?
复制粘贴 y/p
剪切粘贴 d/p
V选择要复制的内容,然后用p粘贴
解决粘贴出现排版的问题
:set past
然后再粘贴
:set nopast
"{register}:寄存器、a-z均可使用
:reg 查看寄存器
了解即可
用q+寄存器开始录制,使用q结束录制
思考:如何快速再每行首部添加同一个字符
十二、vim补全大法
ctrl+n ctrl+p
:单词补全
ctrl+x ctrl+f
:文件名补全
r! echo %:
快速得到当前文件名
:r! echo %:p
:快速得到绝对路径
:colorscheme 当前主题颜色
:colorscheme ctrl+d 显示所有配色
:colorscheme 配色名 修改配色
映射:把一个操作,映射到另一个操作上去
基本映射:normal模式下的映射
map - x
:用-号代替删除键x
map <c-d> dd
:使用ctrl+d执行dd删除一行
其他模式的映射:
nmap
:normal下的映射
imap
:insert下的映射
vmap
:visual下的映射
**如何避免递归映射:**采用非递归映射
nnoremap\inoremap\vnoremap
如何写vimscript:《本方法学vimscript》
**安装插件管理器:**Plug-in
https://github.com/junegunn/vim-plug
常用插件
``Plug 'mhinz/vim-startify'
Plug 'preservim/nerdtree'`
`Plug 'kien/ctrlp.vim'`
`Plug 'vim-airline/vim-airline'`
`Plug 'vim-airline/vim-airline-themes'`
`Plug 'Yggdroot/indentLine'`
`Plug 'w0ng/vim-hybrid'`
`Plug 'altercation/solarized'`