`

vi常用命令

阅读更多

1、复制多行,并粘贴

    1)将光标定位于想开始复制的行,然后输入想要复制的行数:如3,然后输入yy
    2)定位到需要粘贴到的前一行,输入p

2、删除多行

    1)将光标定位于想要开始删除的行,然后输入想要删除的行数:如3,然后输入dd
    说明:其实这个操作是剪切操作,如果需要将刚才删除的行粘贴到另外一个地方,则定位到需要粘贴到的前一行,输入p


3、保存退出操作

保存到一个新文件 :w filename (输入“w filename”,将文章存入指定的文件名filename)
没有修改任何内容,退出:q
已修改内容,但不希望保存,强制退出:q!
保存并退出命令:x或wq

     x和wq的区别
     :wq   强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
     :x    写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

     这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。

4、翻页操作

向文件尾翻页命令:Ctrl+f  向文件尾翻半页命令:Ctrl+d
向文件首翻页命令:Ctrl+b  向文件首翻半页命令:Ctrl+u

5、替换光标所在字符命令:r

6、行内快数跳转

^或0移动到本行行首
$移动到本行行尾
显示行号和取消行号(末行模式使用)
set nu显示行号
set nonu取消行号

7、在命令模式下,使用以下命令可以快速的在行间跳转

1G跳转到文件首行 或gg(这个是自己试验出来的)
G跳转到尾行(shift+g)
#G跳转到文件的#行

8、进入输入模式

i: 插入,从目前光标所在之处插入所输入的文字。
a: 增加,目前光标所在的下一个字开始输入文字。
o: 插入新的一行,从行首开始输入文字。

9、删除操作(命令模式使用)

x删除光标处的单个字符
dd删除光标所在行
dw删除当前字符到单词尾包括空格的所有字符
d0: 删至行首
d$: 删至行尾
#x例如3x删除光标处向右的三个字符
#dd例如3dd从当前行开始向下删除三行文本

10、撤销操作

u命令取消最近一次的操作,可以使用多次来恢复原有的操作
U取消所有操作
Ctrl+R可以恢复对使用u命令的操作

11、复制操作

yy命令复制当前整行的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$复制光标所在位置到行尾内容到缓存区
y^复制光标所在位置到行首内容到缓存区
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区

vi的查找和替换功能主要在末行模式完成:

12、查找操作

/ 要查找的字符串,其中/代表从光标所在位置起开始查找,例如:
/work
从上往下查找 n,从下往上查找N

13、替换操作
:s/old/new用new替换行中首次出现的old
:s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g用new替换从第#行到第#行中出现的old
:% s/old/new/g用new替换整篇中出现的old
注意,如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics