文本编辑之Vim[操作系统入门]

编程

一、Vim、Vi文本编辑器

1??:vi: Visual Interface,文本编辑器

2??:文本:ASCII, Unicode

3??:VIM - Vi IMproved

二、Vim、vi的特点

1??:vi/vim是一种纯文本编辑器,它不像word可以排版,可以调整字体大小,可以改变字体等等,vi/vim只是一个文本编辑工具,它只能对文本的内容进行操作,比如新增内容、修改内容、删除内容等等

2??:vi是一个全屏幕的文本编辑器,在编辑文本时它将占据整个屏幕

三、Vim、Vi的三种编辑模式

1、基本模式

1??:命令模式

2??:编辑模式

3??:末行模式(内置的命令行接口)

2、打开文件

vim [OPTION]... filename...

+#: 打开文件后,直接让光标处于第#行的行首

+/pattern:打开文件后,直接让光标处于第一个被pattern匹配到的行的行首

3、模式转换

命令模式 --> 编辑模式

i: insert, 在光标所在处输入;

a: append, 在光标所在处后面输入;

o: 在当前光标所在行的下方打开一个新行;

I:在当前光标所在行的行首输入;

A:在当前光标所在行的行尾输入;

O:在当前光标所在行的上方打开一个新行;

编辑模式 --> 命令模式

:按ESC键(键盘最左上角)

命令模式 --> 末行模式

:(Shift+:)

末行模式 --> 命令模式

:按ESC键(键盘最左上角的)

四、文件关闭

关闭文件:在末行模式下

:q 退出

:q! 强制退出,丢弃做出的修改;

:wq 保存退出

:x 保存退出

:w /PATH/TO/SOMEWHERE

:r /PATH/TO/SOMEWHERE

五、光标移动

光标跳转:在命令模式下

字符间跳转:h, j, k, l

h: 左

j:下

k:上

l:右

单词间跳转:

w:下一个单词的词首

e:当前或下一单词的词尾

b:当前或前一个单词的词首

#w:以当前光标为起点跳至第#个单词的词首

#e:以当前光标为起点跳至第#个单词的词尾

#b:以当前光标为起点跳至第#个单词的词首

行内跳转

^: 跳转至行首的第一个非空白字符

0: 跳转至行首

$: 跳转至行尾

行间跳转

gg:直接跳转到第一行的行首

G:直接跳转到最后一行的行尾

#gg:直接跳转到第#行(向行首跳转)

#G:直接跳转到第#行(向行尾跳转)

翻屏

ctrl+f:向下翻一屏

ctrl+b:向上翻一屏  

六、字符编辑  

1、命令模式下字符编辑

x: 删除光标处的字符

#x: 删除光标处起始的#个字符

xp: 交换光标所在处的字符及其后面字符的位置

2、删除命令(d)

d: 删除命令,可结合光标跳转字符,实现范围删除;

dd: 删除光标所在的行

#dd:删除包括当前光标所在行在内的#行(多行删除)

d$: 删除到某一行的结尾

d^:删除到某一行的第一个字符位置(不包括空格或TAB字符)

d0:删除到某一行的开始位置

dw:删除当前光标所在单词的词首到该单词的结尾位置(删除某个单词,光标必须位于单词的词首)

db:删除当前光标所在单词的词尾该单词的词首位置 (删除某个单词,光标必须位于单词的词尾)

//在linux中单词是指一串字符,以空格隔开;另外有特殊字符也算是一个单词,例如:=

dl:删除当前字符(与x命令功能相同)

末行模式下d命令的使用

语法:Startadd,Endadd(这里的StartADD与EndADD是指一个范围)

示例

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

3、复制、粘贴命令(y、p、P)

复制命令(y, yank)

yy:复制行

yw 复制一个单词

y$ 复制至行尾

y^ 复制至行首

#yy: 复制多行

粘贴命令(p、Pput, paste)

p:小写p

若删除或复制的为整行内容,则粘贴至光标所在行的下方

若删除或复制的为非整行,则粘贴至光标所在字符的后面

P:大写p

若删除或复制的为整行内容,则粘贴至光标所在行的上方

若删除或复制的为非整行,则粘贴至光标所在字符的前面

4、替换命令

替换命令:r

r#:将当前光标的字符替换为#,这里的#可以是任何字符

R:替换模式,替换多个字符

5、范围表示方法

.       光标所在当前行

$ 最后一行

+# 光标所在行往后#行

$-# 倒数第#行

% 全文

6、撤销编辑(u)

u:撤销前一次的编辑操作,连接u命令可以撤销此前的n次编辑操作

#u:直接撤销此前的#次编辑操作

ctrl+r:还原最近一次的撤销操作

7、可视化模式

可视化模式下可以对选取的内容进行编辑

v:按字符选取内容

V:按矩形块(行)选取内容

8、拓展

文本之间复制:在末行模式下

:1,5write >> /root/test.txt //将第1行至第5行复制到/root下的test.txt文件中

或者

先在file1文件的末行模式下复制:

:1,5yy (回车)

然后退出去到另个文件file2中,直接在命令模式下按:p && P

9、文本查找

/pattern:从上往下查找匹配的内容

?pattern:从下往上查找匹配的内容

n:从上往下查找匹配到的内容的下一条

N:从下往上查找匹配到的内容的下一条

10、查找并替换

s: 在末行模式下完成查找替换操作

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

修饰符

i: 忽略大小写

g: 全局替换;默认情况下,每一行只替换第一次出现

示例

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

11、末行模式下显示或取消显示行号

set nu(number):显示行号

set nonu(number):取消显示行号

 

文本编辑之Vim

原文:https://www.cnblogs.com/520qiangge/p/13453761.html

以上是 文本编辑之Vim[操作系统入门] 的全部内容, 来源链接: utcz.com/z/519180.html

回到顶部