vim 编辑器
程序员文章站
2022-05-26 14:19:43
...
VIM和vi的区别
vim是vi的加强版,支持多级撤销和语法高亮和自动补全。
Command Mode命令模式
vim的默认模式,编辑器等待输入命令
命令 | 作用 |
---|---|
n | 显示搜索命令定位到的下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
o | 在光标所在的行下方插入一行并切换到输入模式 |
gg | 将光标移动到文档开头 |
G | 将光标移动到文档末尾 |
ZZ | 文件将保存并退出vim |
逐字符移动
h:光标向左移动
l:光标先右移动
j:光标向下移动
k:关闭向上移动
复制yank
yy:复制光标所在整行
5yy: 复制从光标处开始的5行
删除
x :删除关闭所在处的单个字符
#x :删除光标所在处以及之后的共#个字符
dd:删除(剪切)光标所在整行
#dd: 删除(剪切)从光标处开始的#行
以单词为单位移动
w:移动下一个单词的词首
e:跳至当前或下一个单词的词尾
b:跳至当前或前一个单词的词首
行内跳转
0:绝对行首
^ :行首的第一个非空白字符
$:绝对行尾
行间跳转
#G:跳转至第#行(注意在末行模式下可以直接输入行号)
G:最后一行
翻屏
Ctrl+f 向下翻屏幕
Ctrl+b 向上翻屏幕
Ctrl+d 向下翻半屏
Ctrl+u 向上翻半屏
粘贴命令
p:如果删除(dd)或复制(yy)为整行内容,则粘贴到光标所在行的下方,如果复制或删除的内容为整行,则粘贴到光标所在字符的后面。
P:如果删除(dd)或复制(yy)为整行内容,则粘贴到光标所在行的上方,如果复制或删除的内容为整行,则粘贴到光标所在字符的前面。
修改
c:删除当前然后开始进入插入模式
撤销undo
u:撤销前一次操作
u:撤销前#次操作
vimrc使用
vimrc是vim的配置文件,vimrc文件的存储位置在
系统 vimrc 文件: "/etc/vimrc"
用户 vimrc 文件: "$HOME/.vimrc"
第二用户 vimrc 文件: "~/.vim/vimrc"
用户 exrc 文件: "$HOME/.exrc"
$VIM 预设值: "/etc"
$VIMRUNTIME 预设值: "/usr/share/vim/vim74"
设置行号永久显示
vim ~/.vimrc
输入以下内容保存
set number
寄存器
寄存器是VIM用于保存临时数据的地方。
在命令模式下
:reg
Insert Mode 输入模式
按a/i/o进入输入模式,同时按esc键可以退出输入模式,还原成命令模式。
i:在当前光标所在字符的前面,转入输入模式
a:在当前光标所在字符的后面,转入输入模式
o:在当前光标所在行的下方,新建一行,并转入输入模式
I:在当前光标所在行的行首,转入输入模式
A:在当前光标所在行的行尾,转入输入模式
O:在当前光标所在行的上方,新建一行,并转入输入模式
Last Line Mode 底行模式(末行模式)
只能在命令模式下才能进入末行模式,按:(冒号)进入底行模式
命令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制执行 |
:q! | 强制退出(放弃对文档的修改内容) |
:wq! | 强制保存退出 |
:ls | |
:set nu/set number | 显示行号 |
:set nonu | 不显示行号 |
:命令 | 执行该命令 |
:整数 | 跳转到该行 |
:s/one/two | 将当前光标所在行的第一个one替换成two |
:s/one/two/g | 将当前光标所在行的所有one替换成two |
:%s/one/two/g | 将全文中的所有one替换成two |
?字符串 | 在文本中从下至上搜索该字符串 |
/字符串 | 在文本中从上至下搜索该字符串 |
:syntax on | 设置语法高亮 |
:行号d | 删除第n行 |
:开始行号s,结束行号e d | 删除从s~e行 |