首页 > 其他分享 >文本编辑工具vim

文本编辑工具vim

时间:2023-01-04 07:33:06浏览次数:38  
标签:文本编辑 set 删除 模式 vim 命令 查找 工具 光标

vim 是文本编辑器

vim 选项 文件

  • +# 打开文件后,光标跳到第#行
  • -d 文件1 文件2 对两个文件进行比较

vim 三个模式

  • 命令模式 默认模式,按Esc就会回到命令模式,切换任何模式之前,都需要先退回命令模式
  • 插入模式 按i进入
  • 扩展命令模式 输入: 进入

模式切换

命令模式 --> 插入模式

  • i insert, 在光标所在处输入
  • I 在当前光标所在行的行首输入
  • a append, 在光标所在处后面输入
  • A 在当前光标所在行的行尾输入
  • o 在当前光标所在行的下方打开一个新行
  • O 在当前光标所在行的上方打开一个新行

关闭文件

扩展命令模式:

  • :q 退出
  • :q! 强制退出,丢弃做出的修改
  • :wq 保存退出
  • :x 保存退出

命令模式

  • ZZ 保存退出
  • ZQ 不保存退出

扩展命令模式

常见命令

  • w 写(存)磁盘文件
  • wq 写入并退出
  • x 写入并退出
  • q 退出
  • q! 不存盘退出,即使更改都将丢失
  • r filename 读文件内容到当前文件中
  • w filename 将当前文件内容写入另一个文件,也可以当作另存为!
  • !command 执行命令
  • r!command 读入命令的输出,将命令执行的结果读入到光标位置

命令模式光标跳转

字符间跳转

h:左 j:下 k:上 l:右

#COMMAND:执行COMMAND命令#号遍

当前页跳转:

  • H:页首
  • M:页中间行
  • L:页底

行首行尾跳转:

  • ^ 跳转至行首的第一个非空白字符
  • 0 跳转至行首
  • $ 跳转至行尾

行间移动:

  • #G 或者扩展命令模式下
  • :# 跳转至由第#行
  • G 最后一行
  • H 行首
  • 1G或者gg 第一行

命令模式翻屏操作

  • Ctrl+f 向文件尾部翻一屏
  • Ctrl+b 向文件首部翻一屏
  • Ctrl+d 向文件尾部翻半屏
  • Ctrl+u 向文件首部翻半屏

命令模式操作

字符编辑:

  • x 删除光标处的字符,相当于剪切
  • #x 删除光标处起始的#个字符
  • xp 交换光标所在处的字符及其后面字符的位置
  • ~ 转换大小写
  • J 删除当前行后的换行符

删除命令:

  • d 删除命令,可结合光标跳转字符,实现范围删除
  • d$ 删除到行尾
  • d^ 删除到非空行首
  • d0 删除到行首
  • dw 删除到词尾
  • dG 删除到页尾
  • dH 删除到页首
  • dd 删除光标所在的行 属于剪切
  • #dd 多行删除,删除从光标数起#行
  • D 从当前光标位置一直删除到行尾,等同于d$

复制命令

  • y 复制,行为相似于d命令
  • y$ 复制到行尾
  • y^ 复制到非空行首
  • y0 复制到行首
  • yw 复制词尾
  • yy 复制行
  • #yy 复制多行
  • 多行复制 33,42 co 25 复制从33行到42行,粘贴到25行后面

粘贴命令

  • p(小p) 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘 贴至当前光标所在处的后面
  • P(大p) 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘 贴至当前光标所在处的前面

选中多行:

使用命令vim打开文件,移动光标至所选行的开头,按v进入视图,键盘上按向下键,选中所需行即可。

命令模式下的其他操作

  • 100iwang [ESC] 粘贴“wang”100次

  • 常见Command
    y 复制、d 删除、gU 变大写、gu 变小写
    例如:0y$ 命令
    0 → 先到行头
    y → 从这里开始拷贝
    $ → 拷贝到本行最后一个字符


  • di" 光标在”“之间,则删除”“之间的内容
  • yi( 光标在()之间,则复制()之间的内容
  • vi[ 光标在[]之间,则选中[]之间的内容
  • dtx 删除字符直到遇见光标之后的第一个 x 字符
  • ytx 复制字符直到遇见光标之后的第一个 x 字符

扩展命令模式:地址定界

  • 地址定界
    :start_pos,end_pos
    # 具体第#行,例如2表示第2行
    #,# 从左侧#表示起始行,到右侧#表示结尾行
    #,+# 从左侧#表示的起始行,加上右侧#表示的行数
    ​ 示例:2,+3 表示2到5行
    . 当前行
    $ 最后一行
    .,$-1 当前行到倒数第二行
    % 全文, 相当于1,$

命令模式:查找

查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:正方向搜索 向下查找下一个
N:反方向搜索 向上查找上一个

命令模式:撤消更改

  • u 撤销最近的更改
  • #u 撤销之前多次更改
  • U 撤消光标落在这行后所有此行的更改
  • Ctrl - r 重做最后的“撤消”更改,也就是取消最后一个撤销
  • . 重复前一个操作
  • #. 重复前一个操作#次

扩展命令模式:查找并替换

  • 在扩展命令模式下完成查找替换操作
    ​格式:s/要查找的内容/替换为的内容/修饰符
    ​ s前面也可以加其他定位命令
    ​要查找的内容:可使用正则表达式
    ​替换为的内容:不能使用正则表达式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
    ​修饰符:
    ​+ i 忽略大小写
    ​+ g 全局替换,默认情况下,每一行只替换第一次出现
    ​+ gc 全局替换,每次替换前询问
  • 查找替换中的分隔符/可替换为其它字符
    ​+ s@/etc@/var@g 将查找到的全部/etc换成/var,
    ​+ s#/boot#/#i 将查找到的所有/boot替换成/,并且忽略大小写
    举例
    :s/a1/a2/g 将当前光标所在的行中的所有a1均用a2替换
    :n1,n2s/a1/a2/g 将文件第n1至n2行中所有a1均用a2替换

如果需要替换所有,需要再s前面添加%,表明本文本的所有文字
否则,光标需要放在需要修改的搜索词上

或者 在前面加g

例如
:g/a1/s//a2/g 将文件中所有的a1均用a2替换

可视化模式

  • 允许选择的文本块
    v 面向字符
    V 面向行
    ctrl-v 面向块
  • 可视化键可用于与移动键结合使用
    w ) } 箭头等
  • 突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

定制vim的工作特性

配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc
扩展命令模式:当前vim进程有效

  1. 行号
    显示:set number,简写 set nu
    取消显示:set nonumber, 简写 set nonu
  2. 忽略字符的大小写
    启用:set ignorecase,简写 set ic
    不忽略:set noic
  3. 自动缩进
    启用:set autoindent,简写 set ai
    禁用:set noai
  4. 复制保留格式
    启用:set paste
    禁用:set nopaste
  5. 显示Tab和换行符 ^I 和$显示
    启用:set list
    禁用:set nolist
  6. 高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch
  7. 语法高亮
    启用:syntax on
    禁用:syntax off
  8. 文件格式
    启用windows格式:set fileformat=dos
    启用unix格式:set fileformat=unix
    简写 set ff=dos|unix
  9. 设置文本宽度
    set textwidth=65 (vim only)
    set wrapmargin=15
  10. 设置光标所在行的标识线
    启用:set cursorline,简写 set cul
    禁用:set nocursorline

标签:文本编辑,set,删除,模式,vim,命令,查找,工具,光标
From: https://www.cnblogs.com/guangdelw/p/17023870.html

相关文章

  • 文本编辑器
     1、通过设计一个文本编辑器演示了演示了菜单、文本框、文本对话框等组件的用法实现了打开文件,保存文件,另存文件以及文本复制、剪切、粘贴和查找等功能  '''通......
  • UML相关工具一览(20190512 更新)
    UML建模工具列表更新。公众号文章中无法直接查询,请到​​http://www.umlchina.com/Tools/search.aspx​​查询您需要的建模工具UML相关工具一览(20190512 更新)UMLChina整理......
  • UML相关工具一览(20181104 更新)
    UML建模工具列表更新。公众号文章中无法直接查询,请到​​http://www.umlchina.com/Tools/search.aspx​​查询您需要的建模工具UML相关工具一览(20181104 更新)UMLChina整理......
  • JAVA线程池-工具类
    packagecom.javacode2022.util;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.collections4.CollectionUtils;importjava.util.List;importjava.......
  • 亲测有效 Hyper V3.4.0 终端美化工具 支持win/mac
    亲测有效HyperV3.4.0终端美化工具支持win/macHyper是一款终端美化工具基于Web技术,JS/HTML/CSS,支持扩展增强,很不错!且支持win,mac 下载地址官网地址:立即前往......
  • nvm下载管理node版本工具
    1、下载地址: https://github.com/coreybutler/nvm-windows/releases2、nvm常用指令:配置nvm的镜像服务器nvmnode_mirrorhttps://npmmirror.com/mirro......
  • 主题 2 Shell工具和脚本
    主题2Shell工具和脚本Shell工具和脚本·themissingsemesterofyourcseducation(missing-semester-cn.github.io)Shell脚本shell脚本是一种更加复杂度的工具......
  • 寻找适合您的UML建模工具
    现有的UML建模工具非常多。UMLChina提供了一个查询的小工具,可以根据各种条件来查询您需要的UML建模工具。网址:​​http://www.umlchina.com/Tools/search.aspx​​本查询工......
  • 寻找您合适的UML建模工具(20180628更新)
    现有的UML建模工具非常多。UMLChina提供了一个查询的小工具,可以根据各种条件来查询您需要的UML建模工具。网址:​​http://www.umlchina.com/Tools/search.aspx​​本查询工......
  • 寻找您合适的UML建模工具(20180702更新)
    现有的UML建模工具非常多。UMLChina提供了一个查询的小工具,可以根据各种条件来查询您需要的UML建模工具。网址:​​http://www.umlchina.com/Tools/search.aspx​​本查询工......