Linux中vim常用的命令

Linux中vim常用的命令

Vim 是一个功能丰富的文本编辑器,拥有大量的命令和快捷键。下面是一个更全面的列表,这些都是在普通模式下使用的命令:

光标移动

  • h: 向左移动光标。
  • j: 向下移动光标。
  • k: 向上移动光标。
  • l: 向右移动光标。
  • w: 跳到下一个单词的开头。
  • b: 跳到上一个单词的开头。
  • e: 跳到下一个单词的结尾。
  • 0: 跳到当前行的开头。
  • ^: 跳到当前行的第一个非空白字符。
  • $: 跳到当前行的结尾。
  • H: 跳到屏幕顶部的行。
  • M: 跳到屏幕中部的行。
  • L: 跳到屏幕底部的行。
  • gf: 打开光标下的文件名对应的文件。

滚动

  • Ctrl + u: 向上滚动半屏。
  • Ctrl + d: 向下滚动半屏。
  • Ctrl + b: 向上滚动一屏。
  • Ctrl + f: 向下滚动一屏。
  • zt: 将当前行移至窗口顶部。
  • zz: 将当前行移至窗口中间。
  • zb: 将当前行移至窗口底部。

查找和替换

  • /pattern: 向下搜索 pattern
  • ?pattern: 向上搜索 pattern
  • n: 重复上一次搜索,向下或者向上。
  • N: 反方向重复上一次搜索。
  • :%s/old/new/g: 全文件替换 oldnew

复制、剪切和粘贴

  • v: 进入可视模式,可以选择文本。
  • V: 进入可视行模式,选择整行文本。
  • Ctrl + v: 进入可视块模式,选择矩形块文本。
  • y: 复制选择的文本。
  • d: 删除选择的文本。
  • Y: 复制当前行(等同于 yy)。
  • D: 删除到行尾(等同于 d$)。
  • c: 删除选择的文本并进入插入模式。
  • C: 删除到行尾并进入插入模式(等同于 c$)。

撤销、重做和重复

  • u: 撤销上次操作。
  • Ctrl + r: 重做被撤销的操作。
  • .: 重复上次的修改命令。

文本编辑

  • r: 替换光标下的字符。
  • R: 进入替换模式,直到按 Esc 退出。
  • s: 删除光标下的字符并进入插入模式。
  • S: 删除当前行并进入插入模式(等同于 cc)。

标记和跳转

  • m<letter>: 对当前位置做标记,<letter> 是任意字母。
  • '<letter>: 跳转到 m<letter> 做的标记位置。

分屏和标签页

  • :split:sp: 水平分割窗口。
  • :vsplit:vsp: 垂直分割窗口。
  • Ctrl + w followed by arrow key: 在窗口间移动光标。
  • :tabnew:tabnew <filename>: 打开新标签页或在新标签页中打开文件。
  • gt:tabnext: 切换到下一个标签页。
  • gT:tabprev: 切换到上一个标签页。

退出和保存

  • :w: 保存文件。
  • :wa: 保存所有打开的文件。
  • :q: 退出 Vim。
  • :qa: 退出所有打开的文件。
  • :wq: 保存并退出。
  • :xZZ: 如果需要则保存,并退出 Vim。
  • :q!: 不保存并强制退出。
  • :qa!: 不保存并强制退出所有打开的文件。

要注意的是,Vim 的命令可以组合,提供了极高的灵活性和强大的编辑功能。例如,d3w 将会删除从光标位置开始的接下来三个单词。这些只是常用命令的一部分,Vim 还有更多高级功能(如宏录制、文本格式化、插件扩展等)等待发掘。

相关推荐
xuanzdhc6 分钟前
Linux 基础IO
linux·运维·服务器
愚润求学12 分钟前
【Linux】网络基础
linux·运维·网络
bantinghy42 分钟前
Linux进程单例模式运行
linux·服务器·单例模式
小和尚同志2 小时前
29.4k!使用 1Panel 来管理你的服务器吧
linux·运维
帽儿山的枪手2 小时前
为什么Linux需要3种NAT地址转换?一探究竟
linux·网络协议·安全
shadon1789 天前
回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务
linux
小米里的大麦9 天前
014 Linux 2.6内核进程调度队列(了解)
linux·运维·驱动开发
程序员的世界你不懂9 天前
Appium+python自动化(三十)yaml配置数据隔离
运维·appium·自动化
算法练习生9 天前
Linux文件元信息完全指南:权限、链接与时间属性
linux·运维·服务器
忘了ʷºᵇₐ9 天前
Linux系统能ping通ip但无法ping通域名的解决方法
linux·服务器·tcp/ip