关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > 技术文章 > 正文

超全的Vim常用快捷键,建议收藏备用

guanshanw 2023-08-24 00:25 49 浏览 0 评论

一、移动光标

  • h j k l 上 下 左 右
  • ctrl-y 上移一行
  • ctrl-e 下移一行
  • ctrl-u 上翻半页(up)
  • ctrl-d 下翻半页(down)
  • ctrl-f 上翻一页(forward)
  • ctrl-b 下翻一页(backward)
  • w 跳到下一个字首,按标点或单词分割
  • W 跳到下一个字首,长跳,如end-of-line被认为是一个字
  • e 跳到下一个字尾
  • E 跳到下一个字尾,长跳
  • b 跳到上一个字
  • B 跳到上一个字,长跳
  • 0 跳至行首,不管有无缩进,就是跳到第0个字符
  • ^ 跳至行首的第一个字符
  • $ 跳至行尾
  • gg 跳至文首
  • G 调至文尾
  • 5gg/5G 调至第5行
  • gd 跳至当前光标所在的变量的声明处
  • fx 在当前行中找x字符,找到了就跳转至
  • ; 重复上一个f命令,而不用重复的输入fx
  • * 查找光标所在处的单词,向下查找
  • # 查找光标所在处的单词,向上查找

二、删除复制

  • dd 删除光标所在行
  • dw 删除一个字(word)
  • d/D 删除到行末
  • x 删除当前字符
  • X 删除前一个字符
  • yy 复制一行
  • yw 复制一个字
  • y/Y 复制到行末
  • p 粘贴粘贴板的内容到当前行的下面
  • P 粘贴粘贴板的内容到当前行的上面

三、插入模式

  • i 从当前光标处进入插入模式
  • I 进入插入模式,并置光标于行首
  • a 追加模式,置光标于当前光标之后
  • A 追加模式,置光标于行末
  • o 在当前行之下新加一行,并进入插入模式
  • O 在当前行之上新加一行,并进入插入模式
  • Esc 退出插入模式

四、编辑

  • J 将下一行和当前行连接为一行
  • cc 删除当前行并进入编辑模式
  • cw 删除当前字,并进入编辑模式
  • c$ 擦除从当前位置至行末的内容,并进入编辑模式
  • s 删除当前字符并进入编辑模式
  • S 删除光标所在行并进入编辑模式
  • xp 交换当前字符和下一个字符
  • u 撤销
  • ctrl+r 重做
  • ~ 切换大小写,当前字符
  • >> 将当前行右移一个单位
  • << 将当前行左移一个单位(一个tab符)
  • == 自动缩进当前行

五、查找替换

  • /pattern 向后搜索字符串pattern
  • ?pattern 向前搜索字符串pattern
  • "\c" 忽略大小写
  • "\C" 大小写敏感
  • n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
  • N 上一个匹配(同上)
  • :%s/old/new/g 搜索整个文件,将所有的old替换为new
  • :%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

六、退出编辑器

  • :w 将缓冲区写入文件,即保存修改
  • :wq 保存修改并退出
  • :x 保存修改并退出
  • :q 退出,如果对缓冲区进行过修改,则会提示
  • :q! 强制退出,放弃修改

七、多文件编辑

  • vim file1.. 同时打开多个文件
  • :args 显示当前编辑文件
  • :next 切换到下个文件
  • :prev 切换到前个文件
  • **:next!**不保存当前编辑文件并切换到下个文件
  • **:prev!**不保存当前编辑文件并切换到上个文件
  • :wnext 保存当前编辑文件并切换到下个文件
  • :wprev 保存当前编辑文件并切换到上个文件
  • :first 定位首文件
  • :last 定位尾文件
  • ctrl+^ 快速在最近打开的两个文件间切换
  • :split[sp] 把当前文件水平分割
  • :split file 把当前窗口水平分割, file
  • :vsplit[vsp] file 把当前窗口垂直分割, file
  • :new file 同split file
  • :close 关闭当前窗口
  • :only 只显示当前窗口, 关闭所有其他的窗口
  • :all 打开所有的窗口
  • :vertical all 打开所有的窗口, 垂直打开
  • :qall 对所有窗口执行:q操作
  • :qall! 对所有窗口执行:q!操作
  • :wall 对所有窗口执行:w操作
  • :wqall 对所有窗口执行:wq操作
  • ctrl-w h 跳转到左边的窗口
  • ctrl-w j 跳转到下面的窗口
  • ctrl-w k 跳转到上面的窗口
  • ctrl-w l 跳转到右边的窗口
  • ctrl-w t 跳转到最顶上的窗口
  • ctrl-w b 跳转到最底下的窗口

八、多标签编辑

  • :tabedit file 在新标签中打开文件file
  • :tab split file 在新标签中打开文件file
  • :tabp 切换到前一个标签
  • :tabn 切换到后一个标签
  • :tabc 关闭当前标签
  • :tabo 关闭其他标签
  • gt 到下一个tab
  • gT 到上一个tab
  • 0gt 跳到第一个tab
  • 5gt 跳到第五个tab

九、执行shell命令

  1. 在命令模式下输入":sh",可以运行相当于在字符模式下,到输入结束想回到VIM编辑器中用exit,ctrl+D返回VIM编辑器
  2. 可以"!command",运行结束后自动回到VIM编辑器中
  3. 用“Ctrl+Z“回到shell,用fg返回编辑
  4. :!make -> 直接在当前目录下运行make指令

十、VIM启动项

  • -o[n] 以水平分屏的方式打开多个文件
  • -O[n] 以垂直分屏的方式打开多个文件

十一、自动排版

在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定

十二、如何在vim中编译程序

在vim中可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make

超全的Vim常用快捷键,建议收藏备用

编译后的结果就显示在了copen打开的小窗口里了,而且用鼠标双击错误信息,就会跳转到发生错误的行。

十三、buffer操作

buffer状态

  • - (非活动的缓冲区)
  • a (当前被激活缓冲区)
  • h (隐藏的缓冲区)
  • % (当前的缓冲区)
  • # (交换缓冲区)
  • = (只读缓冲区)
  • + (已经更改的缓冲区)

十四、 VIM 操作目录

1.打开目录

  • vim .
  • vim a-path/

2.以下操作在操作目录时生效

p,P,t,u,U,x,v,o,r,s

  • c 使当前打开的目录成为当前目录
  • d 创建目录
  • % 创建文件
  • D 删除文件/目录
  • - 转到上层目录
  • gb 转到上一个 bookmarked directory
  • i 改变目录文件列表方式
  • ^l 刷新当前打开的目录

  • mf - 标记文件
  • mu - unmark all marked files
  • mz - Compress/decompress marked files
  • gh 显示/不显示隐藏文件( dot-files)
  • ^h 编辑隐藏文件列表
  • a 转换显示模式, all - hide - unhide
  • qf diplay infomation about file
  • qb list the bookmarked directories and directory traversal history
  • gi Display information on file

  • mb
  • mc
  • md - 将标记的文件(mf标记文件)使用 diff 模式
  • me - 编辑标记的文件,只显示一个,其余放入 buffer 中
  • mh
  • mm - move marked files to marked-file target directory
  • mc - copy
  • mp
  • mr
  • mt

vim 中复制,移动文件

  1. mt - 移动到的目录
  2. mf - 标记要移动的文件
  3. mc - 移动/复制

R 移动文件

打开当前编辑文件的目录

  • :Explore
  • :Hexplore
  • :Nexplore
  • :Pexplore
  • :Sexplore
  • :Texplore
  • :Vexplore

相关推荐

七条简单命令让您玩转Git
七条简单命令让您玩转Git

凭借着出色的协作能力、快速部署效果与代码构建辅助作用,Git已经得到越来越多企业用户的青睐。除了用于开发商业及消费级应用之外,众多科学及政府机构也开始尝试使用这...

2023-10-07 12:14 guanshanw

基本完整的关于Git分支branch的操作
基本完整的关于Git分支branch的操作

Git使用背景项目中要用到dev或者其他分支开发完代码,需要将该分支合并到master的需求操作步骤下面以dev名称为lex为分支名为例来操作一遍客户端操作:...

2023-10-07 12:14 guanshanw

Git 进阶(合并与变基)
Git 进阶(合并与变基)

在Git中整合来自不同分支的修改主要有两种方法:合并(merge)以及变基(rebase)合并(merge)merge流程图merge的原理是找到这两个分...

2023-10-07 12:13 guanshanw

Git学习笔记 003 Git进阶功能 part5 合并(第一部分)

合并(merge)是很常用的操作。尤其是一个庞大的很多人参与开发的企业级应用。一般会设定一个主分支,和多个副分支。在副分支开发完成后,合并到主分支中。始终保持主分支是一个完整的,稳定的最新状态的分支。...

非标题党,三张图帮你理解git merge和git rebase的区别
非标题党,三张图帮你理解git merge和git rebase的区别

初始场景:基于正常的开发分支修改几个小bug,然后在合并到开发分支上。gitmergegitcheckoutfeaturegitmergeho...

2023-10-07 12:13 guanshanw

git 初次使用(01)
git 初次使用(01)

先从github上克隆代码下来:使用vscode克隆代码如下图,填写上github仓库地址:vscode有时候克隆代码速度比较慢,可以用命令行方式克隆gitc...

2023-10-07 12:12 guanshanw

Git 远程操作

4.Git远程操作命令说明gitremote远程版本库操作gitfetch从远程获取版本库gitpull下载远程代码并合并gitpush上传远程代码并合并4.1远程版本库操作gitre...

Git常用命令-总结
Git常用命令-总结

创建git用户$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.em...

2023-10-07 12:12 guanshanw

git中删除从别人clone下来项目的git信息,并修改为自己的分支

如果你从别人的Git存储库中克隆了一个项目,并想要删除与该存储库相关的Git信息,并将其修改为你自己的分支,则可以执行以下步骤:使用gitclone命令克隆存储库:gitclone<u...

git系列-回滚和放弃本地修改

回滚历史提交就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。gitreset--hardcommitId//注:强制提交后,当前版本后面的提交版本将会删掉!gi...

GIT使用小技巧大全
GIT使用小技巧大全

在大型软件工程的开发过程中,版本控制是无法绕过去的;目前来说,最火的版本控制软件就是GIT了。早两年SVN比较火,不过被大神linus喷了几次后,就日落西山了,...

2023-10-07 12:11 guanshanw

git相关命令-上
git相关命令-上

这些命令都是看了文档后,个人觉得比较有用的一些,展示给大家。回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。gitfetch--all&...

2023-10-07 12:10 guanshanw

Git命令行接口:掌握Git的必备技能
Git命令行接口:掌握Git的必备技能

Git是一款强大的分布式版本控制工具,它支持命令行界面操作。熟练掌握Git命令行接口,是开发者使用Git的必备技能之一。在这篇文章中,我们将介绍Git命令行接口...

2023-10-07 12:10 guanshanw

Git命令详解
Git命令详解

相信各位小伙伴们应该都对git有一些了解,毕竟作为代码管理的神器,就算不是IT行业的小伙伴肯定也或多或少的听说过一些。今天就来和小伙伴们分享一下自己总结的常用命...

2023-10-07 12:10 guanshanw

工作7年收集到的git命令
工作7年收集到的git命令

概念git中的术语解释:仓库也叫版本库(repository)stage:暂存区,add后会存到暂存区,commit后提交到版本库git安装linux...

2023-10-07 12:10 guanshanw

取消回复欢迎 发表评论: