vim编辑器命令介绍
vim编辑器
文本编辑器,字处理器(内容为纯 ASCII )
vi:Visual Interface
vim: VI improved
全屏编辑器,模式化编辑器
vim模式: 编辑模式(命令模式)
、输入模式
、 末行模式
模式转换
编辑–> 输入:
- i : 在当前光标所处字符的前面,转为输入模式
- a : 在当前光标所处字符的后面,转为输入模式
- o : 在当前光标所在行的下方,新建一行,并转为输入模式
- I : 在当前光标所在行的行首,转换为输入模式
- A : 在当前光标所在行的行尾,转换为输入模式
- O : 在当前光标所在行的上方,新建一行,转换为输入模式
输入–> 编辑:
- ESC
编辑–>末行:
- 只有编辑模式才能转换为末行模式,输入模式不能直接转换末行模式:
末行–>编辑
- ESC,ESC
一、打开文件
vim /path/to/somefile
- vim +# : 打开文件并定位于第#行
- vim + : 打开文件,定位至最后一行
- vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
默认处于编辑模式
二、关闭文件
末行模式关闭文件
q 不保存退出 wq 保存并退出 q! 不保存退出 w 保存 w! 强行保存(只有管理员能操作) wq --> x
编辑模式下退出
ZZ 保存并退出
三、移动光标 (编辑模式)
逐字符移动
h : 左 l : 右 j : 上 k : 下 #h : 向左移动#个字符
以单词为单位移动
w : 移至下一个单词的词首 e : 跳至当前或下一个单词的词尾 b : 跳至当前或前一个单词的词首 #w
行内跳转:
0 : 绝对行首 ^ : 行首的第一个空白字符 $ : 绝对行尾 { :段落跳转(向上一个段落跳转) } :段落跳转(向下一个段落跳转)
行间跳转
#G 跳转至#行 G 最后一行
末行模式下,直接给出行号即可
四、 翻屏操作
- ctrl+f : 向下翻一屏
- ctrl+b : 向上翻一屏
- ctrl+d : 向下翻半屏
- ctrl+u : 向上翻半屏
五、删除单个字符
- x : 删除光标所在处单个字符
- X : 删除光标前的字符
- #x :删除光标所在处及向后的共#个字符
六、删除命令: d
d命令和跳转命令组合使用
d motion
其中: d - 删除操作符。 motion - 操作符的操作对象(在下面列出)。 一个简短的动作列表: w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。 e - 从当前光标当前位置直到单词末尾,包括最后一个字符。 $ - 从当前光标当前位置直到当前行末。
#d跳转符
删除跳转符指定范围的#号个#dw 删除光标所在处到下#个单词的词首之间的字符 #de 删除当前光标所在位置 到 离当前光标最近的 下 第#个单词词尾 之间的字符 #db
dd
: 删除光标所在行#dd : 删除包括当前光标所在行在内的#行
d$
(D是它的缩写): 删除当前位置到行尾的字符上面已经提到过删除操作符和动作的组合,您可以在组合中动作之前插入一个数字以删除更多:
d number(数字) motion
末行模式下:
startADD,endADDd :1,8d :.,+5d :.,100d . : 当前行 $ : 最后一行 +# : 向下的#行
七、粘贴命令
p:如果删除的或复制的为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
P:如果删除的或复制的为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面
八、复制命令: y
用法同d命令相同
九、修改:先删除内容,再转换为输入模式
- c :用法同d命令
- cw:
- ce:
- cb:
提示:请注意 ce 命令不仅仅是删除了一个单词,它也让您进入插入模式了。
十、替换:r
r:替换单个字符
R:替换模式
十一、撤销编辑操作:u
u:撤销前一次的编辑操作
U(大写u): 撤消在一行中所做的改动
连续u命令可撤销此前的n此操作(vim最多可保存50次编辑操作,所以最多可撤销前50次操作)
还原最近一次撤销操作 ctrl+r
十二、重复前一次编辑操作
.
十三、可视化模式
v: 按字符选取
V : 按矩形选取
十四、查找
/pattern 从当前光标所在行向文件尾部查找符合pattern的字符
?pattern 从当前光标所在行向文件头部查找符合pattern的字符
n 跳转下一个匹配字符串
N 跳转上一个匹配字符串
十五、查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@string@gi
如 :1,5s/dir/DIR/g
1,$ : 表示全文
- % : 表示全文
十六、使用vim编辑多个文件
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至钱一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
退出
:qa 全部退出
十七、 分屏显示一个文件
Ctrl+w, s : 水平拆分窗口
Ctrl+w, v : 垂直拆分窗口
在窗口件切换光标:
Ctrl+w,↑ 切换到上半屏
Ctrl+w,↓ 切换到下半屏
Ctrl+w,← 切换到左半屏
Ctrl+w,→ 切换到右半屏
:qa 关闭所有窗口
十八、分窗口显示多个文件
- vim -o :水平分割显示
- vim -O :垂直分割显示
十九、将当前文件中部分内容另存为另一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somwhere
二十、经另外一个文件的内容填充在当前文件中
:r /path/to/somewhere
二十一、跟shell交互
:! command
二十二、高级话题
- 显示或取消行号
:set number :set nu :set nonu
显示忽略或区分字符大小写
:set ignorecase :set ic :set noignorecase :set noic
设置自动缩进
:set sutoindent :set ai :set noai
查找到的文本高高亮显示或取消
:set hlsearch :set nohlsearch
语法高亮
:syntax on 开启 :syntax off 关闭
这些设定只对当前vim进程生效
二十三、配置文件
- /etc/vim/vimrc ubuntu
- /etc/vimrc redhat
- ~/.vimrc
杂项
vim 强制退出进程
交换文件 “.initramfs.conf.swp” 已存在!
以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 退出((Q)), 中止((A)):