Linux学习笔记----vim文本编辑软件

vim(vi)是Linux中功能强大的编辑工具。vim有3中主要的模式:

 1.normal mode:当进入vim时,默认的模式就是normal mode。在此模式下,无法输入任何文字,不过可以利用按键命令来执行许多操作命令,例如移动光标位置、复制、删除。

 2.insert mode:进入vim输入a、i、或o键。即可进入insert mode,此模式下可以输入文字内容。

 3.command-line mode:在norma lmode中输入“:”即会进入command-line mode,在此模式下,可以做一些与输入文字无关的事,例如搜索字符串、保存文件或结束编辑等。

normal mode下:

h:将光标向左移动一格

l:将光标向右移动一格

j:将光标向下移动一格

k:将光标向上移动一格

ctrl+b:将页面向前卷动一页

ctrl+f:将页面向后卷动一页

0:将光标移到该行最前面

$:将光标移到该行的最后面

G:将光标移到最后一行的开头

wW:将光标移到下一个字

若输入“w”,则标点符号如“.”,“,”,“/”等字符都被当成一个字

eE:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符。

若输入“w”,则标点符号如“.”,“,”,“/”等字符都被当成一个字

b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符。

ctrl+u:将光标向前移动半页

ctrl+d:将光标向右移动半页

ctrl+e:屏幕向下卷动一行,也可以说文章和光标向上卷动一行

ctrl+y:屏幕向上卷动一行,也可以说文章和光标向下卷动一行

 

command-line mode下:

e 文件的路径及名称:打开指定文件

a:从当前光标所在的位置的下一个字符开始输入

i:在光标所在的位置插入新输入的字符

o:新增加的一行,并将光标移到下一行的开头

w:文件的路径及名称 保存文件

q:退出vim

Vim的常用操作命令

复制文字

yy:可将光标目前所在位置的正行复制,复制时不会将文字反白显示

nyy:其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下面2行一起复制

yw:可复制光标所在位置到整个单词结束的字符

nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面的2个字一起复制

p:可将复制的文字粘贴到当前光标所在的位置。若复制的是整行文字,则会将整行内容粘贴在光标所在位置的下一行

 

删除文字

d:先按d键,放开后按←键,可将光标位置前一个字符删除;按→键,则会将光标位置的字符删除;按↑键,可将当前光标所在的行与前一行一并删除。按↓键,可将当前的光标所在的行与下一行删除。

D:可删除一行中光标所在位置之后的所有字符。

dd:连续按2次d键可删除光标所在的那一行。

dw:将光标停在某个字的第一个字符,按dw键时,会将此字整个删除。如将光标置在某个字中间的字符上,则会将此字中光标后面的字符删除。

nd:n为数字,如按3d,再按下↑键,则删除光标上方的3行,再包括本身1行,共删除4行。若按下↓键,则删除光标下方3行再包括本身1行,共4行。

ndd:若按3dd键,表示删除当前光标位置的1行和下面的2行。

x:删除光标所在位置的字符

X:删除光标所在位置的前一个字符,与d+←键一样

nx:按4x键,表示删除光标位置后的3个字符和光标本身所在的字符

nX:按4X键,表示删除光标位置之前的4个字符(不包括光标的字符)

 

查找及替换文字

/或?:当药搜索文章中的某一个字符串时,可输入“/”或“?”,然后在输入要查找的字符串。例如输入“/kuka”,然后按回车键,vim就会把所有的gz字符串标记起来,并自动将光标移到第一个找到的字符串上。

n:将光标移到下一个找到的字符串上

N:将光标移到上一个找到的字符串上

r:替换光标所在的位置的字符。修改内容不一定要进入insert mode,在normal mode中,只要将光标移到要更改的字符上,然后按R键,就可以输入要查找的字符了。

R:连续替换光标所在的位置的字符,按Esc键停止替换

cc:按cc键可以替换光标所在的那一行

替换字符串:当要将文章中的某一个字符串全部替换时(例如将所有的temp替换成tmp),使用“:g/temp/s//tmp/g”或“:1,$stemp/tmp/g”命令,可立刻将所有的“temp”替换成“tmp”字符串。如果不是所有的“temp”字符串都要替换时,可用“:g/temp/s//tmp/gc”或“:1/,$stemp/tmp/gc”命令。则找到每一个“temp”字符串时,都会将整行显示在屏幕的下方,可输入“y”或“n”决定是否要替换。

 

显示光标所在的行数、移到指定的行数

^g、^G:按次组合键,则会在最下方处显示光标所造位置的行数,以及文章的总行数。

nG:n为数字,若按下20G,则可将光标移到第20行。

 

还原

u:按此键就是在执行undo命令,可取消前一次的操作

^r:按此键就是执行redo命令,可以恢复刚才undo的操作









如何用vi 复制第5行到第10行并粘贴到第12行之后?

方法1:
光标放到第五行,
输入:y6y
光标放到第12行,
输入:p

方法2:
命令行模式下输入
:5,10 co 12

方法3:
我一般都是
先移到第五行 d6
p
再移到12行 
p

延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代

光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc

然后 :'a,'b co 'c

把 co 改成 m 就成剪切了



那删除呢

是不是5,10 de
刚才试了试,的确可以



也可以把大量的代码保存到一个文件,然后在另一个文件里打开需要拷贝的代码。
   
   在文件一:
光标移到起始行,输入ma
光标移到结束行,输入mb
       然后:'a, 'b w filename

   在文件二:
       光标移到需要赋值的行,输入:
       :r filename


行拷贝还有一个比较简单的方法:
操作如下:
找到要复制的行,键盘按下shift+v, 然后用方向键上下或j h 移动想要copy的行,然后按下y

在移动到目的行,按下p即完成拷贝多行。这种方法适合没有行号的多行copy。


Vi 提供了文本移动和复制命令,用户利用这些指令可以方便的复制字符、文字、行还有文本块。
有关的命令如下:
yy 将当前行复制到缓冲区
yw 将当前单词复制到缓冲区
y1 将光标处的一个字符复制到缓冲区
p 将缓冲区的信息粘贴到光标的后面
:行号1 ,行号2 copy 行号3                                  将行号1到行号2的内容复制到行号3所在行的后面。
:行号1 ,行号2 move 行号3                                     将行号1到行号2的文本内容移动到行号3所在行的后面。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值