【Linux VI】 个人小结

1.         Vi简介

a)        Vi存在三种模式:指令模式和插入模式,底行模式

  1)        命令模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到 底行模式。ESC:退回到指令模式。

  2)        插入模式:只有在插入模式下,才可以做文字编辑,按「ESC」键回到命令模式。

  3)        底行模式:将文件保存或退出vi,也可设置编辑环境,如寻找字符串、列出行号。

 b)       打开文件

1)      vi filename :打开或新建文件,并将光标置于第一行首 

2)       vi +n filename :打开文件,并将光标置于第n行首

3)       vi + filename :打开文件,并将光标置于最后一行首

4)       vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

5)       vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 

6)       vi filename....filename :打开多个文件,依次进行编辑         

 

2.         指令模式:

  a)        进入插入模式

1)      输入a:在当前位置之后插入字符

2)      输入A:在光标所在列最后面的地方开始新增资料

3)      输入i:在当前位置之前插入字符 insert

4)      输入I:从光标所在列的最前面非空白字前开始插入

5)      输入o:在光标所在列下一列插入行并进入插入模式   open

6)      输入O:在光标所在列上一列插入行并进入插入模式 

b)        移动光标操作

  1)        方向键:

h:左移 (或backspace)

j:下移 (或Enter)

k:上移

l:右移 (或space)

# + (上面四个键或者键盘上的方向键):向对应方向移动#个字符或者段落

H:移动到视图的第一列     head

M:移动到视图的中间列     middle

L:移动到视图的最后列      last

2)        字间移动

b或B:移动到上一个字的第一个字母              before

w或W:移动到下一个字的第一个字母             walk

e或E:移动到下一个字的最后一个字母          end

3)        行,段落间移动

  0:移动到光标所在列的列首

^:移动到本行第一个不是blank字符的位置

$:移动到光标所在列的列尾

g_:移动到本行最后一个不是blank字符的位置

#-:移动到一个#列前的第一个非空字符前

#+:移动到一个#列后的第一个非空字符前

gg:移动到文档首行

G:移动到文档末尾(或者双击“]”键,反之回到文章开头双击”[”)

#G:移动到第#列

#(:移到#个句子句首

#):移到#个句子句尾

#{:移到#个段落开头

#}:移到#个段落结尾

4)        翻页

Ctrl+ d:向下半页     down

Ctrl+ f:向下一页      forward

Ctrl+ u:向上半页     up

Ctrl+ b:向上一页     backward

c)         删除

1)      x:删除光标所在一个字符,从左往右

2)      X:删除光标所在的前面一个字符,从右往左

3)     dw:删除当前光标后的一个单词

4)      dd:删除光标所在的列(#dd:删除光标所在行开始的#行);d#G:删除第几行

5)      s:删除光标所在资源,并进入输入模式

6)      S:删除光标所在的列的内容,并进入输入模式 

d)        修改

1)      cw:更改光标所在处的字到字尾处(c#w:更改#个字);,c^删除一行到行首;c$删除一行到行尾

2)      cc:删除光标所在的列的内容,并进入输入模式 

3)      r:修改光标所在资源,按下r后,接着修改对应的字符,只能进行一次。

4)      R:进入取替换状态,新增文字会覆盖原先文字,知道按下ESC回到指令模式为止

5)      ~:改变字符的大小状态。

6)      backspace:替换光标所在处之前的字符,点击n次,替换光标之前的字符

7)  J:将光标所在行与下一行的数据结合成一行

   e)        复制

yw:复制光标所在之处到字尾的字符 yank

yy:复制光标所在行

f)         粘贴

  P:放置复制内容                       put 

g)        恢复操作

1)        u:恢复刚才操作 

2)        Ctrl + r:恢复undo -> redo

h)        其他

1)        Ctrl+ g:列出光标所在行的行号

2)       .(小数的):重复上一次命令

          

3         底行模式,命令模式下输入:进入

a)        存盘退出相关

1)      :q:直接退出,文件有新的变化,vi会提示保存文件

2)      :q!:不想保存改变后的文件,强制退出。

3)      :wq:存盘退出         (后面可接文件名)

4)      :x:存盘退出

5)      :w:保存文件                       (后面可接文件名,列:20,59w /tmp/newfile = :saveas + file)

b)        显示信息

:set  nu/nonu:列出文件中每行的行号

c)         :#:跳到文件的第#行

d)        :?关键字:从光标位置往前查想要的关键字,按n会重复同方向查找,N反方向重复查找

e)        :/关键字:从光标位置往后查想要的关键字,按n会重复同方向查找,N反方向重复查找

f)        替换&拷贝

:n1,n2 s/p1/p2/g:将第n1至n2行(%为所有)中所有p1均用p2贴换 (不指定行号为当前行;g->global,不指定,为第一个。而p1为^,指行首;p1为$,指行尾。)

: g/p1/s//p2/g:将文件中所有p1均用p2替换

:n1, n2 co n3:将n1行到n2行之间的内容复制到第n3行下

:n1, n2 m n3:将n1行到n2行之间的内容剪切至n3行下

“:%s#/usr/bin#/bin#g”:可以把文件中所有路径/usr/bin换成/bin。也可以使用命令”:%s//usr/bin//bin/g”实现,其中””是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

g)     同时打开多个文件 (1.txt 2.txt 3.txt)

:args:显示多文件信息(会在末行提示当前打开了哪些档)     are globals

:next:切换到下一个文件

:prev:切换到上一个文件

:first:定位首文件

:last:定位尾文件

Ctrl + ^:快速切换到编辑器中切换前的文件  

:e:在当前窗口打开新的文件

:bn/:bp:在打开的文件中切换

h)  其他

: !command:执行shell命令command

: n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入

: r!command:将命令command的输出结果放到当前行

:r [filename]:在编辑的数据中,读入另一个论据的数据,亦即将filename这个文件内容加到光标所在行的后面。

 

补充:

#+命令:一次实现#次名利,如#x:删除光标所在后面的#个字符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值