大家好,又见面了,我是你们的朋友全栈君。
vim是vi的升级版,最常见的区别是能用多种颜色显示显示系统文件的一些特殊信息。
vim [options] [file …] vim [options] – vim [options] -t tag vim [options] -q [errorfile] ex view gvim gview evim eview rvim rview rgvim rgview
1) 模式转换 a) 【i】:在当前光标所在字符的前面,转为输入模式 b) 【a】:在当前光标所在字符的后面,转换为输入模式 c) 【o】:在当前光标所在行的下方,新建一行,并转换为输入模式: d) 【I】:在当前光标所在行的行首,转换为输入模式 e) 【A】:在当前光标所在行的行尾,转换为输入模式 f) 【O】:在当前光标所在行的上方,新建一行,并转换为输入模式; g) 【cc】删除当前行并输入新内容,相当于S。扩展【#cc】 h) 【C】删除当前光标到行尾,并切换成插入模式
2) 逐字符移动 a) 【h】向左 b) 【l】向右(小写的L) c) 【j】向上 d) 【k】向下 e) 【#COMMAND】移动#个字符 例如: 【#h】向左移动#个字符 【#l】向右移动#个字符 【#j】向上移动#个字符(相当于向上移动#行) 【#k】向下移动#个字符(相当于向下移动#行) 3) 当前页跳转 a) 【H】:当前页的页首 b) 【M】:当前页的中间行 c) 【L】当前页的页底
4) 以单词为单位移动 a) 【w】移动至下一个单词的词首 b) 【e】跳至当前或下一个单词的词尾 c) 【b】跳至当前或前一个单词的词首 d) 【#COMMAND】跳到第#个单词 例如: 【#w】跳转到第#个单词的词首 【#e】向下跳转到第#个单词的词尾 【#b】向上跳转到第#个单词的词首 5) 行内跳转 a) 【0】(零) :绝对行首,光标移动到当前行的行首 b) 【^】光标移动到当前行首的第一个非空白字符 c) 【&】光标移动到当前行的行尾 6) 行间跳转(相当于上下跳转) a) 【G】跳转到最后一行(整个文档的最后一行) b) 【gg或者1G】跳转到文档的第一行 c) 【#G】跳转到第#行(文档最上为第一行) 注意:想要跳转到最后一行可以输入【0G】也是最后一行 7) 句间移动 a) 【)】下一句 b) 【(】上一句 8) 段落间移动 a) 【}】下一段 b) 【{】上一段 9) 常用快捷键滚动 a) 【Ctrl + e】向下滚动一行 b) 【Ctrl + y】向上滚动一行 c) 【Ctrl + d】向下滚动半屏 d) 【Ctrl + u】向上滚动半屏 e) 【Ctrl + f】向下滚动一屏 f) 【Ctrl + b】向上滚动一屏 10) 字符编辑
11) 替换命令(r,replace)
12) 删除命令(剪切命令) 注意:d命令删除的字符会默认复制到剪贴板 a) 【d】删除命令,可以结合光标跳转字符,实现范围删除 b) 【d】删除到行尾 c) 【d^】删除到非空行首 d) 【d0】删除到行首 e) 【dd】删除光标所在行 f) 【#dd】多行删除 g) 【D】从当前光标位置一直删除到行尾,留空行,等同于【d】 h) 【de】 i) 【dw】 j) 【db】 k) 【#COMMAND】 l) 【Shift + j】删除两行质检的空行,实际上是合并两行 插入模式(输入模式下的剪切) 正常模式(默认模式)下按v(逐字)或V(逐行)进入可视模式,然后用【j】【k】【l】【h】命令移动即可选择某些行或字符,再按d即可剪切
13) 复制命令(y,yank) a) 【y】复制,可以结合光标跳转字符,实现范围复制(行为与d有类似之处) b) 【y$】复制到行尾 c) 【y^】复制到非空行首 d) 【y0】复制到行首 e) 【yy】复制当前行 f) 【#yy】复制多行 g) 【Y】整行复制 h) 【ye】 i) 【yw】 j) 【yb】 k) 【#COMMAND】
14) 粘贴命令(p,paste) a) 【p】缓冲区存的如果为整行,则粘贴当前光标所在行的下方,否则粘贴至当前光标所在处的后面 b) 【P】缓冲区存的如果为整行,则粘贴当前光标所在行的上方,否则粘贴至当前光标所在处的前面 15) 撤销更改 a) 【u】撤销最近的更改 b) 【#u】撤销之前多次更改 c) 【U】撤销光标落在这行后所有此行的更改 d) 【按Ctrl + r】重做最后的“撤销”更改(相当于取消撤销) e) 【.】重做前一个操作 f) 【#】重复前一个操作#次
命令模式下进入末行模式(扩展模式)输入:【:】
4.2.4.1 退出命令 【:q】退出 【:x】保存退出 【:wq】保存并退出 【:q!】强制退出并或略所有更改 【:e!】放弃所有修改,并打开源文件 注意:在默认模式的退出方法 【ZZ】保存并退出 【ZQ】不保存退出 附加: 【:!COMMAND】执行COMMAND命令,和shell交互 【r!COMMAND】读入命令的输出 【r filename】读取filename文件内容到当前文件中 【w filename】将当前文件内容下入filename文件中
4.2.4.2 地址定界(可以用于查找和替换等) 语法:【:start_pos,end_pos】 例如: 【:#】具体第#行,例如2表示第2行 【#,#】从左侧#表示起始行,到右侧#表示结尾行 【#,+#】从左侧#表示的起始行,加上右侧#表示的行数 例如【:2,+3】表示2到5行 【.】表示当前行 【】最后一行 【%】全文,相当于【1,】 例如:【:.,
4.2.4.3 查找并替换
注意:查找替换中的分隔符【/】可用其他符号替代,例如【@】【#】等
例子:【s/a/Good/g】或者【s@a@Good@g】查找当前光标所在行的“a”字符,全部替换成“Good”字符 替换后: 例如:【s#/boot#/#i】将光标所在行的【/boot】替换成【/】,默认只会替换一个,匹配时会忽略大小写 例如:【4s@^.*\(你好\).*@\1@ig】 在4行查找匹配“^.*\(你好\).*”这个正则表达式 能匹配到的内容,替换成“你好” 替换前: 替换后: 如果需要对全文替换可以使用如下命令 【:1,s/^.*\(你好\).*/\1/ig】其中【1,】为地址界定。
4.2.4.4 地址定界与查找替换扩展模式结合使用
【:4,8s/^.*\(你好\).*/\1/ig
】这种为只替换第4行到第8行之间的内容,其中【4,8】表示4行到8行之间的内容
【:/par1/,/par2/s/^.*\(你好\).*/\1/ig
】这种为从第一次匹配到par1到第一次匹配par2之间的内容中间,
按照【s/^.*\(你好\).*/\1/ig
】命令进行匹配替换
4.2.4.5 帮助命令
帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回
4.2.4.6 其他非编辑命令
默认模式下输入:
可视化建可用于与移动建结合使用 【w】【)】【}】箭头灯 突出显示的文字可被删除,复制,变更,过滤,搜索,替换等
语法:【vim –o|-O FILE1 FILE2 …】 【-o】水平分割显示 【-O】垂直分割显示 命令模式下输入【:qa】关闭所有窗口 窗口间切换:Ctrl+w,Arrow
【/etc/vimrc】vim的全局配置文件 【~/.vimrc】用户的vim配置文件
文本:ASCII,Unicode
[root@gdy103 ~]# vim --help
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 5 2012 10:17:30)
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
参数:
-- 在这以后只有文件名
-v Vi 模式 (同 "vi")
-e Ex 模式 (同 "ex")
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-d Diff 模式 (同 "vimdiff")
-y 容易模式 (同 "evim",无模式)
-R 只读模式 (同 "view")
-Z 限制模式 (同 "rvim")
-m 不可修改(写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D 调试模式
-n 不使用交换文件,只使用内存
-r 列出交换文件并退出
-r (跟文件名) 恢复崩溃的会话
-L 同 -r
-A 以 Arabic 模式启动
-H 以 Hebrew 模式启动
-F 以 Farsi 模式启动
-T <terminal> 设定终端类型为 <terminal>
-u <vimrc> 使用 <vimrc> 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+<lnum> 启动后跳到第 <lnum> 行
--cmd <command> 加载任何 vimrc 文件前执行 <command>
-c <command> 加载第一个文件后执行 <command>
-S <session> 加载第一个文件后执行文件 <session>
-s <scriptin> 从文件 <scriptin> 读入正常模式的命令
-w <scriptout> 将所有输入的命令追加到文件 <scriptout>
-W <scriptout> 将所有输入的命令写入到文件 <scriptout>
-x 编辑加密的文件
--startuptime <file> Write startup timing messages to <file>
-i <viminfo> 使用 <viminfo> 取代 .viminfo
-h 或 --help 打印帮助(本信息)并退出
--version 打印版本信息并退出
[root@gdy103 ~]#
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134235.html原文链接:https://javaforall.cn