Linux Vim使用

Linux常用的文本编辑工具有nano和vi,vim是vi的升级强化版本,支持的模式有三种:命令模式、输入模式、末行模式

打开文件

命令格式: vim [option] [file...]

选项

+#: 打开文件并光标定位到第#行
+/PATTERN: 打开文件,光标定位到第一次匹配到PATTERN的行

模式转换

  • 编辑模式 -> 输入模式

i: 光标处转入输入模式
a: 光标后转入输入模式
o: 光标行下一行打开新行转入输入模式
I: 光标行首转入输入模式
A: 光标行尾转入数据模式
O: 光标所在行上一行打开新行转入数据模式

  • 输入模式 -> 编辑模式

ESC键

  • 编辑模式 -> 末行模式

:

  • 末行模式 -> 编辑模式

ESC键

  • 编辑模式->替换模式

r: 替换当前字符
R: 进入替换模式

  • 编辑模式->可视模式

v: 按字符选定
V: 按行选定

关闭文件

  • 在编辑模式下,zz保存并退出

  • 在末行模式下: q退出,q!强制退出,不保存;wq或者x保存退出;w /to/new/file保存至一个新文件

光标跳转

  • 字符间跳转

h或者左方向键: 左跳一个字符
j或者下方向键: 下跳一行
k或者上方向键: 上跳一行
l或者右方向键: 右跳转一个字符
#COMMAND: 跳转#个字符

  • 单词间跳转

w: 下一个单词词首
e: 当前或者下一个单词词尾
b: 当前或者上一个单词词首
#COMMAND: 跳转#个单词

  • 行首尾跳转

^: 跳转到行首第一个非空白字符位置
0: 跳转到行首
$: 跳转到行尾

  • 行间跳转

#G: 跳转到#行
G: 跳转到最后一行
1G或者gg: 跳转到第一行

  • 句间跳转

): 跳转到句首
(: 跳转到句末

  • 段间跳转

{: 跳转到段首
}: 跳转到段末

翻屏

Commond+f: 向后翻一屏
Commond+b: 向前翻一屏
Commond+d: 向后翻半屏
Commond+u: 向前翻半屏
Enter: 向后翻1行

vim编辑命令

  • 字符编辑

x: 删除光标位置的字符
#x: 删除光标位置到后面的#个字符
xp: 交换光标位置和后面字符的位置

  • 替换命令

r: 替换光标处的字符

  • 删除命令

d: 删除光标所在的字符,可结合光标跳转实现范围删除

d$: 删除光标所在位置到行末的所有字符
d0: 删除光标所在位置到行首的所有字符
d^: 删除光标所有位置到行首第一个非空字符的所有字符
dw: 删除光标位置到下一个单词前的所有字符
de: 删除光标所在位置到当前单词或下一个单词末尾的所有字符
db: 删除光标所在位置到当前单词首上一个单词首所有字符
dd: 删除当前行

  • 粘贴命令

p: 粘贴到当前光标后面,如果是一整行就会在当前光标所在行下面一整行
P: 粘贴到当前光标前面,如果是一整行就会在当前光标所在行上面一整行

  • 复制命令

y: 复制命令,可以结合光标移动命令实现范围复制

y$: 复制光标所在位置到行末的所有字符
y0: 复制光标所在位置到行首的所有字符
y^: 复制光标所有位置到行首第一个非空字符的所有字符
yw: 复制光标位置到下一个单词前的所有字符
ye: 复制光标所在位置到当前单词或下一个单词末尾的所有字符
yb: 复制光标所在位置到当前单词首上一个单词首所有字符
#COMMAND: #次操作

  • 改变命令

c: 实现删除并进入输入模式

c$: 删除光标所在位置到行末的所有字符,并进入输入模式
c0: 删除光标所在位置到行首的所有字符,并进入输入模式
c^: 删除光标所有位置到行首第一个非空字符的所有字符,并进入输入模式
cw: 删除光标位置到下一个单词前的所有字符,并进入输入模式
ce: 删除光标所在位置到当前单词或下一个单词末尾的所有字符,并进入输入模式
cb: 删除光标所在位置到当前单词首上一个单词首所有字符,并进入输入模式
cd: 删除当前行,并进入输入模式
#COMMAND: #次操作

  • 撤销操作

u: 撤销操作
Ctrl+r: 重做
.: 重复上一次编辑

vimtutor 为自带的vim教程,使用vimtutor调出教程。

末行模式
  • 位置界定

:start_post[,end_post]

#: 特定第#行,如5,就是第5行
.: 当前行
$: 最后一行
#,#: 指定一个范围内的所有行
#,+#: 第#行到#+#行
%: 全文
/PATTERN/: 从光标位置到文件末尾第一次被模式匹配到的行

位置界定可以和命令一起使用实现编辑操作,例如

d
y
c

还可以将指定的内容保存到一个文件 w /path/to/file

或者将指定文件的内容插入到指定位置: r /path/from/file

  • 查找

/PATTERN: 从光标向后查找

?PATTERN: 从光标位置向前查找

n N 分别表示沿搜索顺序和逆搜索顺序查找下一个匹配位置

  • 替换

s: 末行模式替换命令

s/要查找的内容/替换为的内容/修饰符

要查找的内容:可以使用正则表达式

替换为的内容:不能使用正则表达式,但可以使用引用分组

修饰符:i表示忽略大小写 g表示全局替换,默认只会替换一行中的第一个匹配位置

在有特殊字符是,可以使用特殊字符替换,例如s###,s@@@

例如:%s@\<t[[:alpha:]]\+\>@&er@g%s#\<t\([[:alpha:]]\+\)\>#T\1#g

vim多文件功能

  • 在文件间切换

:next 下一个
:prev 上一个
:first 第一个
:last 最后一个

  • 退出所有文件

:wqall 保存并退出所有文件
:wall 保存所有文件
:qall 退出所有文件

  • 多窗口vim选项

-o 水平分隔窗口
-O 垂直分隔窗口

Ctrl+w,方向键: 在多个窗口间切换

在vim内部,可以使用Ctrl+w,s,水平分割两个窗口查看同一个文件;使用Ctrl+w,v,垂直分隔窗口查看同一个文件。

vim定制

在末行模式中的设定只对当前vim进程有效,如果需要永久修改,需要修改/etc/vimrc或者~/.vimrc文件

  1. 行号:set number或者set nu, 取消显示行号set nonu或者set nomber

  2. 括号高亮匹配:set showmatch或者set sm,取消则使用set nosm

  3. 自动缩进:set ai,取消使用set noai

  4. 高亮搜索:set hlsearch,取消使用set nohlsearch

  5. 语法高亮:syntax on,取消使用syntax off

  6. 忽略大小写:set ic,取消使用set noic

  7. 获取帮助:help,或者使用help subject获取具体小结帮助,例如help set

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值