首页 > 其他分享 >vim命令

vim命令

时间:2022-12-04 13:22:30浏览次数:59  
标签:窗口 删除 ctrl 模式 vim 命令 光标

前言

用了几年vim,但是有些命令少用后便会忘记,时常需要百度,干脆在这里累积,方便直接查找。

使用utools辅助。

便捷唯快不破。

下面键入的命令在实际使用时混合搭配使用,慢慢摸索即可。

原文:李柱明博客

vim简要知识

vim键盘简图


该图源自百度,很久前的笔记了,没有追查

vim模式

  1. 普通模式:Vim 启动后的默认模式,用来移动光标、删除文本、覆盖输入文本、恢复操作、粘贴文本等等。
  2. 插入模式:输入 iao 进入插入模式,在这个模式下敲击键盘会往文字缓冲区增加文字,相当于普通编辑器的编辑模式。
  3. 可视模式:选择文本,可以行选、块选和依次选择,选择后可以进行复制、删除、排序等操作。
  4. 命令模式:执行内部和外部命令,通过:/?:!可以进入命令模式,分别对应的是:执行内部命令、向上或向下搜索、执行外部命令。

vim日常操作

以下描述,默认情况都是在普通模式下的键入。

只描述本人日常使用的,一切少用和不常见的可以参考上图或百度。

光标移动

上下左右:

普通模式和可视模式下,使用h(←)、j(↓)、k(↑)、i(→)实现。

如果需要在插入模式下实现光标移动,可以在vimrc文件配置上添加以下配置热键映射(入门的同学忽略这个)

  • 个人习惯键盘默认的上下左右键。

单词方式移动光标(不区分大小写):

  • b/B:前一个单词词首。
  • e/E:下一个单词词尾。
  • w/W:下一个单词词首。

行指定字符:

  • fx:搜索光标后字符x并跳转。
  • Fx:搜索光标前字符x并跳转。

行首行尾:

  • homeend键:行首尾。虽然不属于vim范畴,但是作者也经常使用。特别是搭配shift键用来选中文本。
  • ^$,也是行首尾。
  • |(是shift+\得出的,不是英文字母I):行首。

句和段:

  • ():上一句和下一句。
  • {}:上一段和下一段。

文件某个位置:

  • gg:文件头。
  • G:文件末。
  • ngg:跳转到第n行,n为数字。

跳到函数首尾:

[]都是以每个函数的首尾括号为基准。

相同方向跳到函数左括号(开头)。

相反方向跳到函数右括号(尾部)。

第一个方向决定前后,第二个方向决定首尾。

前面还可以添加数字n,表示n个。

n不填时默认为1。

n[[:前n个 前:(

n[]:前n个 后:)

n]]:后n个 前:(

n][:后n个 后:)

ctrl+T:回到上一个光标位置。

屏幕移动

主要是浏览代码时使用。

翻页:

  • ctrl+b:上一页。(Backward)
  • ctrl+f:下一页。(Forward)
  • ctrl+u:上半一页。(up)
  • ctrl+d:下半一页。(down)

当前屏光标位置:

  • H:当前屏顶。(High)
  • M:当前屏中。(Middle)
  • L:当前屏底。(Low)

光标滚屏:

  • zt:光标代码滚到屏顶。(top)
  • zz:光标代码滚到屏中。
  • zb:光标代码滚到屏底。
  • ctrl+e:前滚一行。
  • ctrl+y:后滚一行。

文本修改

进入插入模式:

  • i:在光标所在位置插入。
  • I:在行首插入。
  • a:在在光标后插入。
  • A:在行尾插入。
  • o:在光标所在位置的下一行插入。
  • O:在光标所在位置的上一行插入。

删除:

x:删除字符。

  • x:删除当前字符。
  • nx:删除包括当前字符后的n个字符。
  • X:删除光标前一个字符。
  • nX:删除当前光标前的n个字符。

d:需要配合使用。

  • dd:删除整行。

  • ndd:删除n行。

  • 因为d是删除操作,需要搭配其它键使用,其删除就是删除到后面键入命令后光标的位置如:

    • dfx:从光标起删除到本行后面第一个字符x的位置。
    • diw:删除光标所在单词。
    • 还有dwdbd end键等等都可以自由发挥。

dix和dax的使用,是删除x内部和删除包括x的内部:

  • di}:就是删除光标所在的{}内部所有内容。
  • da}:相对di}da}{}也删除。
  • 其x可以搭配:wsp"}]等等辅助字符,实际用到时再了解。

dw删除一个单词示例:

di)删除()内容示例:

df(删除到( :

复制粘贴

y:复制。

  • 搭配v键入可视模式后选中文本,键入y就是复制选中的文本了。
  • yy:复制当前行。
  • nyy:当前行起,复制n行。
  • y搭配贯标移动指令进行复制。
  • y搭配wsp"}]等等辅助字符使用。
  • 注意:前面的删除是删除后带赋值作用的。

p:粘贴。

yi{复制p粘贴{}内容示例:

撤销:

  • u:撤销上一个操作。

vim可视模式

v

v:进入可视模式。即是选中文本。

搭配光标移动使用,这个比较简单。

高级点的就是搭配wsp"}]等等辅助字符使用。

再搭配yd这些指令使用。实现复制、删除功能。

ctrl+v

  • ctrl+v:进入可视模式
  • ctrl+v+%:选中大括号
  • ctrl+v+I:行列插入

配合光标移动相关命令使用。如在多行尾部修改:

重复技巧

Vim 对很多简单操作已经定义了重复键:

  • ;:重复最近的字符查找(f、t等)操作。
  • ,:重复最近的字符查找操作,反方向。
  • n:重复最近的字符串查找操作(/和?)。(vscode中直接/进入命令搜索字符串)
  • N:重复最近的字符串查找操作(/和?),反方向。(vscode中直接/进入命令搜索字符串)
  • .:重复执行最近的修改操作。

多窗口

多个窗口操作同一个文件。

:sp:水平分屏。(split)

:vs:垂直分屏。(vsplit)

注意,部分功能渲染在vscode可能失效,练习的同学转linux下的vim。

操作下面处理前先键入ctrl+w

主要:

  • 加方向键(h、j、k、l、等等)可以在窗口之间跳转
  • w:跳转到下一个(往右和往下)窗口,如果已经是右下角的窗口,则跳转到左上角的窗口
  • W:跳转到上一个(往左和往上)窗口,如果已经是左上角的窗口,则跳转到右下角的窗口
  • n:new:打开一个新窗口
  • c:close:关闭当前窗口;当前窗口如果已经是最后一个则无效
  • q:quit:退出当前窗口,当最后一个窗口退出时则退出 Vim
  • o:only:只保留当前窗口,关闭其他所有窗口
  • s:split:作用相同,把当前窗口横向一分为二
  • v:vsplit:作用相同,把当前窗口纵向一分为二
  • =:使得所有窗口大小相同(当调整过终端或图形界面 Vim 的窗口大小后特别有用)

了解:

  • _:设置窗口高度,命令前的数字表示高度行数,默认为纵向占满(想专心编辑某个文件时很有用)
  • |:设置窗口宽度,命令前的数字表示宽度列数,默认为横向占满
  • +:增加窗口的高度,命令前的数字表示需要增加的行数,默认为 1
  • -:减少窗口的高度,命令前的数字表示需要减少的行数,默认为 1
  • >:增加窗口的宽度,命令前的数字表示需要增加的列数,默认为 1
  • <lt>(提醒,我们用表示“<”键)减少窗口的宽度,命令前的数字表示需要增加的列数,默认为 1。

简单示例:

更便捷

自己定制键入。

标签:窗口,删除,ctrl,模式,vim,命令,光标
From: https://www.cnblogs.com/lizhuming/p/16949700.html

相关文章

  • rm -rf命令的作用 以及windows 代替命令
    1、Linuxrm就是remove的缩写,用于Linux系统中删除文件的命令。基本语法rm[option]要删除的文件或目录常用选项-r:递归删除整个文件-f:强制删除不提......
  • 责任链,桥接,适配器,单例,命令哪个设计模式你最常用呢
    设计原则一、你都了解哪些设计原则,你对这些设计原则有哪些心得1、单一职责原则4、依赖倒置原则2、开闭原则5、里氏替换原则3、接口隔离原则6、迪米特法则1、单一......
  • Linux基础-学会使用命令帮助
    概述使用whatis使用man查看命令程序路径which总结参考资料概述Linux命令及其参数繁多,大多数人都是无法记住全部功能和具体参数意思的。在linux终端,面对命令......
  • 常用命令_包管理
    软件包分类源码包二进制包(rpm包、系统包) rmp包:rpm命令管理、yum在线管理(解决rpm依赖问题)rmp命令管理 rpm包命名原则 httpd-2.2.15-15.el6.centos.1.i68......
  • Redis配置、优化以及相命令
    一、关系数据库和非关系型数据库1、关系型数据库关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。SQL语句(标准数据查询语言)就是一种......
  • 常用命令_网络
    write<用户名>wall[message]#给所有人发消息发广播消息ping选项ip地址#测试网络连通性 -c指定发送次数ifconfig网卡名称IP地址#查看和设置网卡信息mail......
  • Redis 命令
    查看所有键(生产环境避免使用)keys*键总数(直接获取Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1))dbsize检查键是否存在(存在则返回1,不存在为0)ex......
  • Linux笔记03: Linux常用命令_3.1命令的基本格式
    3.1命令的基本格式 3.1.1命令提示符[root@localhost~]#这就是Linux系统的命令提示符。各部分含义如下:●[]:这是提示符的分隔符号,没有特殊含义。●ro......
  • vim编辑器中文乱码修复
    Vim是老式UNIX编辑器Vi的大幅改进版本。新增功能:多级撤消、语法高亮、命令行历史记录、在线帮助、拼写检查、文件名补全、块操作、脚本语言等。还有一个图形用户界面(GUI......
  • [.NET学习] EFCore学习之旅 -3 一些其他的迁移命令
    1.Update-DataBase xxx概述:将数据库回滚到某个版本。1.首先创建一个表Dog2.生成迁移Add-MigrationCreateDogTable并更新到数据库Update-Databa......