Linux-vim编辑器
Posted poppy-s
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-vim编辑器相关的知识,希望对你有一定的参考价值。
@toc
文本编辑器-vim
三种模式
命令模式:Normal(默认模式,可移动光标,剪切/粘贴文本)
插入模式:Insert(修改文本)
命令模式:Extended command(保存,退出等)
1.vim [option] file
[OPTION]
+NUM `打开后跳到NUM行`
+/PATTERN `跳到PATTERN匹配到的行`
-b file `二进制打开`
-d file1 file2 `比较文件`
-m file `只读打开`
-e file `ex模式`
说明:
如果file存在,则file被打开并显示内容
如果file不存在,在编辑后覅一次wq时新建file
2.命令模式
1.命令模式_光标跳转
字符间
| 命令 | 用途 |
|--|--|
| [NUM] h | 向左NUM个字符 |
| [NUM] l | 向右NUM个字符 |
| [NUM] j | 向下NUM个字符 |
| [NUM] k | 向上NUM个字符 |
单词间
| 命令 | 用途 |
|--|--|
| [NUM] w | 向下NUM个单词 |
| [NUM] e | 当前或下NUM个单词词尾 |
| [NUM] b | 当前或上NUM个单词词首 |
页面
| 命令 | 用途 |
|--|--|
| H | 页首 |
| M | 页中 |
| L | 页底 |
| zt | 当前行移到顶 |
| zz | 当前行移到中 |
| zb | 当前行移到底 |
行间、句间、段落间
| 命令 | 用途 |
|--|--|
| ^ | 行首(非空) |
| 0 | 行首 |
| $ | 行尾 |
| NUM G | 跳到NUM行 |
| G | 尾行 |
| gg | 首行 |
| ( | 上一句 |
| ) | 下一句 |
| | 上一段 |
| | 下一段 |
vim中翻屏快捷键
ctrl+f:向下一屏
ctrl+b:向上一屏
ctrl+d:向下半屏
ctrl+u:向上半屏
2.命令模式-字符操作
命令 | 用途 |
---|---|
[NUM] x | 删除当前NUM个字符 |
p | 粘贴x删除的字符 |
~ | 大小写转换 |
gu | 变小写 |
gU | 变大写 |
J | 删除当前行的换行符 |
r | 替换当前字符 |
R | 替换模式 |
删除命令
| 命令 | 用途 |
|--|--|
| [NUM] d | 删除命令(结合以下命令使用) |
| d$或D | 删到尾 |
| d0 | 删到头 |
| d^ | 删到头(非空) |
| dw | 删除当前字符 |
| de | 后删单词 |
| db | 前删单词 |
| [NUM] dd | 删除NUM行 |
复制命令
| 命令 | 用途 |
|--|--|
| [NUM] y | 复制命令(结合以下命令使用) |
| y$ | 复制到尾 |
| y0 | 复制到头 |
| y^ | 复制到头(非空) |
| yw | 复制当前字符 |
| ye | 复制后单词 |
| yb | 复制前单词 |
| [NUM] yy | 复制NUM行 |
粘贴命令
| 命令 | 用途 |
|--|--|
| p | 往后粘贴 |
| P | 往前粘贴 |
改变命令
| 命令 | 用途 |
|--|--|
| c | 修改进入插入模式(同下) |
| c$或c | 删到尾 |
| c0 | 删到头 |
| c^ | 删到头(非空) |
| cw | 删除当前字符 |
| ce | 删除后单词 |
| cb | 删除前单词 |
| [NUM] cc | 删除NUM行 |
查找命令
| 命令 | 用途 |
|--|--|
| /PATTERN | 向下查找 |
| ?PATHERN | 向上查找 |
| n | 查找方向(对查找结果而言)|
| N | 查找反向(对查找结果而言)|
撤销更改
| 命令 | 用途 |
|--|--|
| [NUM] u | 撤销NUM次 |
| U | 撤销行的所有改变 |
| ctrl+r | 重做 |
| [NUM] . | 重复前一个NUM个操作 |
3.vim的寄存器
vim一共有26个全名寄存器和1个无名寄存器
| 命令 | 用途 |
|--|--|
| 1"syy | 复制1行到s寄存器 |
| "sp | 粘贴s寄存器里的内容 |
4.标记、宏
命令 | 用途 |
---|---|
ma-z | 将当前位置标记为a,可以标记26个a-z |
‘a | 跳转到标记a |
qa | 录制宏a |
q | 停止录制 |
@a | 执行洪a |
@@ | 重新执行上次的宏 |
3.扩展命令模式
1.关闭文件
命令 | 用途 |
---|---|
:q | 退出 |
:q! | 强制退出 |
:wq | 保存退出 |
:x | 保存退出 |
ZZ | 保存退出 |
ZQ | 不保存退出 |
2.命令操作
命令 | 用途 |
---|---|
:w | 写(存)磁盘文件 |
:r file | 读文件到当前文件中 |
:w file | 将当前文件写到另一个文件中 |
:!command | 执行命令 |
:r!command | 把命令的结果写入当前文件 |
3.地址定界
地址定界+command
| 命令 | 用途 |
|--|--|
| :NUM | 跳转到NUM行 |
| :NUM,+NUM | 如:2,+3表示2,5行 |
| :. | 当前行 |
| :$ | 最后行 |
| :% | 全文 |
| /STR1/,/STR2/ | 从匹配到STR1到STR2 |
| NUM,/STR/ | 从第NUM行到STR匹配行 |
| /STR/,$ | 从STR匹配行到结束 |
command
| 命令 | 用途 |
|--|--|
| w file | 选中范围保存到文件file |
| r file | 选中范围保存到指定file |
示例
1.:1,3d
2.:/string1/,/string2/y
3.:/string1/,$r /data/file1
4.查找并替换
格式: s/要查的内容/要替换的内容/修饰符
要替换的内容: 1. 可以使用\1,\2括号引用。2. 可以使用&引用前面查找到的整个内容
修饰符
| 命令 | 用途 |
|--|--|
| I | 忽略大小写 |
| g | 每行替换1次 |
| gc | 全部替换 |
分隔符可以使用
1. s/string1/string2/g
2. s@string1@string2@gc
3. s#string1#string2#i
5.编辑二进制文件
1. vim -b binary_FILE
2. 命令模式下:
:%!xxd 十六进制
:%!xxd-r 二进制
4.可视化模式
命令模式下
| 命令 | 用途 |
|--|--|
| v | 字符 |
| V | 行 |
| ctrl+v | 块 |
5.多文件模式
vim file1 file2 file3
命令模式下
| 命令 | 用途 |
|--|--|
| :next | 下一个 |
| :prev | 上一个 |
| :first | 第一个 |
| :last1 | 最后一个 |
| :wall | 保存所有 |
| :qwall | 退出所有 |
| :wqull | 保存并退出所有 |
使用多窗口
vim -o file1 file2(水平分割)
vim -O file1 file2(垂直分割)
命令 | 用途 |
---|---|
Ctrl+w,w | 窗口间切换 |
Ctrl+w,s | 水平分割 |
Ctrl+w,v | 垂直分割 |
Ctrl+w,q | 取消相邻窗口 |
Ctrl+w,o | 取消所有窗口 |
6.定制vim的工作特性
1.配置文件
全局:/etc/vimrc
个人:~/.vimrc
2.扩展模式(临时有效)
命令 | 用途 |
---|---|
set [no]nu | 不显示行号 |
set [no]ic | 不忽略大小写 |
set [no]ai | 不自动缩进 |
set [no]paste | 不复制保留格式 |
set [no]si | 不智能缩进 |
set [no]search | 不高亮搜索 |
set [off]on | 关闭语法高亮 |
set ff=dos | unix |
set textwidith=65,set wrapmargin=15 | 设置文本宽度 |
set [no]cul | 不显示光标所在标识线 |
set [no]list | 不显示tab和换行符 |
7.vim键盘图
以上是关于Linux-vim编辑器的主要内容,如果未能解决你的问题,请参考以下文章