vi/vim文本编辑器

文本编辑

1.vi/vim介绍

vi/vim都是Linux中的文本编辑器,但是目前我们使用比较多的是vim编辑器。vim是从vi发展出来的一个文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。vim具有程序编程的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。

2.vi/vim编辑器的特点

  • vi/vim是一种纯文本编辑器,它不像Word可以排版,可以调整字体大小,可以改变字体等等。
  • vi/vim只是一个文本编辑工具,它只能对文本的内容进行操作,比如对文本的新增内容、修改内容、删除内容等等
  • vi是一个屏幕的文本编辑器,在编辑文本时它将占据整个屏幕
  • vim是vi的增强版,比vi更容易使用,vi的命令几乎都可以在vim上使用

3.vi/vim的三种模式

3.1命令模式

命令模式:在该模式下不能对文本直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、粘贴等等)该模式是打开文件之后默认进入的模式。

3.2编辑模式

输入模式:也可以叫做编辑模式,在该模式下可以对文件的内容进行编辑。

3.3末行模式

末行模式:也可以叫尾行模式,可以在末行输入命令来对文件进行操作(搜索、替换、保持、退出等等)。

4.vi/vim三种模式之间的转换

命令模式--------->输入模式

  • 用户刚刚启动vi/vim,便进入了命令模式。
  • 此状态下敲击键盘动作会被vi/vim识别为命令,而非输入字符。比如我们此时按下i并非输入字符i,而是被当做了一个命令进入输入模式。
  • 以下是常用的几个命令:
命令作用
iinsert,在当前光标所在字符的前面转为输入模式
I(大写的i)在光标所在行的行首转换成输入模式
aappend,在当前光标所在字符的后面转换成输入模式
A在光标所在行的行尾转换成输入模式
o(字母o)open,在当前光标所在行的下方新建一行并转为输入模式
O(大写的字母o)在当前光标所在行的上方新建一行并转为输入模式

输入模式--------->末行模式

:(输入一个冒号)

末行模式--------->命令模式

在键盘下按下Esc

5.文本编辑方式

打开文件:

[root@hyh ~]# vim a

打开文件夹并定位到第n行

[root@hyh ~]# vim +n a

移动光标

以字符为单位移动:

指令效果
h或向左箭头键←光标向左移动一个字符
j或向下箭头键↓光标向下移动一个字符
k或向上箭头键↑光标向上移动一个字符
l或向右箭头键→光标向右移动一个字符

如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!


以单词为单位移动:

指令效果
w移动到下一个单词的词首
e跳至当前或下一个单词的词尾
b跳至当前或上一个单词的词首
#w以当前光标为起点跳转第#个单词词首
#e以当前光标为起点跳转第#个单词词尾
#b以当前光标为起点跳转第#个单词词首

行内跳转:

指令效果
0(数字0)跳转到当前行首
^跳转到行首的第一个非空白字符
$跳转到行尾

行间跳转:

指令效果
gg跳转到第一行
G跳转到最后一行
#gg跳转到第#行
#GG跳转到第#行

翻屏:

指令效果
Ctrl+f向下翻一屏
Ctrl+b向上翻一屏

字符编辑:

编辑命令意义
x删除光标所在处的单个字符
#x删除光标所在处及其向后共#个字符
xp交换光标所在处的字符及其后面字符的位置

删除命令:d
命令模式下d命令常与跳转命令组合使用,如

  • d$:表示删除当前光标所在位置到行尾的内容
  • d^:表示删除当前光标所在位置到第一个行首非空白字符位置的内容
  • d0:表示删除当前光标所在位置到绝对行首的内容
  • #d跳转符:删除跳转符指定范围内的#个
  • dd:删除当前光标所在行整行
  • #dd:删除包括当前光标所在行在内的#行
  • D:删除当前光标所在行的内容,保留空行

末行模式下d命令的使用
语法::StartADD,EndADDd
这里的StartADD与EndADD是指一个范围,例如:

  • 1,5d:表示删除第1到第5行

范围表示方法:

表示方法意义
.光标所在当前行
$最后一行
+#光标所在行往后#行
$-#倒数第#行
%全文
搜索
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!

替换:r

  • R:替换模式,替换多个字符
  • r#:将当前光标的字符替换为#,这里的#可以是任何字符

查找并替换:s
s命令只能在末行模式下使用
语法:ADDR1,ADDR2 s/pattern/string/gi

  • 1,5 s/abc/123/g:表示把第一行到第五行的所有abc替换为123

复制命令:yy

粘贴命令:p

  • p:小写p
    • 若删除或复制的为整行内容,则粘贴至光标所在行的下方
    • 若删除或复制的为非整行,则粘贴至光标所在字符的后面
  • P:大写p
    • 若删除或复制的为整行内容,则粘贴至光标所在行的上方
    • 若删除或复制的为非整行,则粘贴至光标所在字符的前面

撤销编辑:u

  • u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作
  • #u:直接撤销此前的#次编辑操作
  • ctrl+r:还原最近一次的撤销操作

重复前一次编辑操作:.(小数点)

选取的内容:v

  • v:按字符选取内容
  • V:按矩形块(行)选取内容

末行模式关闭文件:

命令意义
q!不保存退出
wq!强行保存并退出
x强行保存并退出

末行模式下显示或取消显示行号:

  • set nu:显示行号
  • set nonu:取消显示行号

命令模式关闭文件:

  • ZZ(大写zz就是shift+zz)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值