Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3539|回复: 5
打印 上一主题 下一主题

vi vim 常用命令

[复制链接]

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
楼主
发表于 2019-4-12 17:18:29 | 显示全部楼层
为了便于选取文本,VIM 引入了可视(Visual)模式。 要选取一段文本,首先将光标移到段首,在普通模式下按 v 进入可视模式,然后把光标移到段末。 需要注意,光标所在字符是包含在选区中的
v 进入字符可视化模式
V 进入行可视化模式
Ctrl+v 进入块可视化模式
块选择 Ctrl+v
在表格中删除指定列非常有用
用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
用 ctrl-V 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。

G 从光标所在处选择到结尾
操作:
这时可以对所选的文本进行一些操作,
常用的(可视模式)命令有:
x或d 剪切(即删除,同时所选的文本进入剪贴板)
y 复制
r字符 所有字符替换为新字符
u U ~ 分别是所有字母变小写、变大写、反转大小写
“>”和“<" 将选中字符右移或左移 shiftwidth位置
当输入了命令以后,VIM 将回到普通模式,这时可以按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:
p或P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面。
d 与 D 的区别
d只删除选中的字符,而D删除选中字符所在行的所有字符, c 和 C , y 和 Y 同理
我们还可以利用可视化模式,来合并多行文本。 J 命令可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行。如果不希望在行间插入空格,那么可以使用 gJ 命令。
使用 g? 命令,可以使用rot 13算法来加密高亮显示的文本。针对同一个文本再次执行加密命令,就可以进行文本解密。
在可视化模式下,按下 : 键就可以对选定范围进行操作。例如:我们先在可视化模式下选中文本,然后执行 :write block.txt 命令,就可以将文本块写入另一文件中。选择多行,然后执行 :sort 命令,则可以对选中的文本进行排序。
查看Visual Mode下的命令
:help v_, 例如使用 :help v_d 命令,可以得到关于在可视模式下进行删除操作的帮助信息。

回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
沙发
发表于 2020-1-1 14:11:06 | 显示全部楼层
命令(命令行)模式(command mode)、插入(编辑)模式(Insert mode)和底行(一般)模式(last line mode)
1) 命令行模式command mode)
  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
                k、j、h、l——上、下、左、右光标移动命令。
                nG——跳转命令。n为行数,该命令立即使光标跳到指定行。
                Ctrl+G——光标所在位置的行数和列数报告。
                w、b——使光标向前或向后跳过一个单词。
                i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。
                cw、dw——改变(置换)/删除光标所在处的单词的命令 (c=change、d=delete)。
                x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。
                yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。
                /string、?string——从光标所在处向后或向前查找相应的字符串的命令。

进入插入模式:
                [i] : 从光标当前位置开始输入文件
                [a] : 从目前光标所在位置的下一个位置开始输入文字
                [o] : 是插入新的一行,从行首开始输入文字
进入底行模式
                按[:]
2) 插入模式(Insert mode)
  只有在Insert mode下,才可以做文字输入,
                按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。


不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

常用命令:
退出保存文件:
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)

回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
板凳
发表于 2020-5-22 10:18:26 | 显示全部楼层
替换命令
常用命令示例:

#将当前行第一个a替换为b

:s/a/b/



#将当前行的所有a替换为b

:s/a/b/g



#将每行第一个a替换为b

:%s/a/b



#将整个文件的所有a替换为b

:%s/a/b/g



#将1至3行的第一个a替换为b

:1,3s/a/b/



#将1至3行的所有a替换为b

:1,3s/a/b/g
————————————————
版权声明:本文为CSDN博主「隔壁小白」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cbaln0/java/article/details/87979056

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-2 11:29 , Processed in 0.056657 second(s), 17 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表