vim常用命令总结

article/2025/11/4 15:56:46

文章目录

  • vi/vim 常用命令总结
    • 如何进入vim
    • 1. vi/vim的工作模式切换
    • 2. vim命令键盘图
    • 3. 常用命令模式命令
      • 3.1 光标移动
        • 1. 移动键
        • 2. 行内移动
        • 3. 行间移动
        • 4. 标记定位
        • 5. 查找定位
      • 3.2 复制剪切粘贴
        • 常用复制剪切粘贴命令
    • 4. 常用底线命令行模式命令
      • 4.1 设置行号
      • 4.1 撤销
    • 5. vim配置
      • 5.1 vim光标样式设置
      • 5.2 键修改
      • 5.3 插件管理
    • 相关资料

vi/vim 常用命令总结

vim是经典的文本编辑器,可以进行高效的程序开发。本文对常用命令进行整理。详细内容可以参考官方文档1.

如何进入vim

  1. bash中输入vi/vim即可进入
  2. sublime:
    在菜单栏中: Preferences -> Setting - User 即可打开配置文件进行编辑,将 ignored_packages 项的[]里面内容清空:“ignored_packages”: []2

再按 Esc 退出编辑模式,即进入了 Vim 模式。

1. vi/vim的工作模式切换

基本上 vi/vim 共分为五种模式34,分别是普通模式插入模式底线命令模式(Last line mode)。 这三种模式的作用分别是:

  • 普通模式(normal mode):常用基本命令,在此模式输入不会识别为输入字符,而是命令控制,如删除字符x,复制y等;
  • 插入模式(Insert mode):正常的文本输入模式。
  • 命令模式(command mode):可以通过单个或者多个字符进行命令控制,命令非常多。
  • 视图模式(visual mode): 命令模式下,v/ctrl+v进入选择模式。(v 字符,V 行)可通过移动光标(用 方向键 或 hjkl )选中多字符或者多行。
  • 替换模式(replace mode)替换模式,R进入该模式,输入字符替换当前光标后字符。

在这里插入图片描述

2. vim命令键盘图

命令键盘图

3. 常用命令模式命令

我认为vim最吸引我的就是简单有效,仅仅通过按键就可以快速的完成编辑工作。vim理想的使用模式就是用一次按键移动,用另一次按键执行5。vim的命令实在有点多,目前也没有理出好的头绪,就想把常用的内容整理记录一下。

3.1 光标移动

该部分参考博客

1. 移动键

h j k l 

说明: 该命令可在前面增加数字,表示重复多次.

  • 4l 向后移动四个字符
  • 4j 向下移动4行

为什么用 HJKL 键作为方向键?

当 Bill Joy 创建 Vi 文本编辑器时,他使用的机器机器是 ADM-3A 终端机,这机器就是把 HJKL 键作为方向键。自然而然,Bill Joy 也就用了相同的按键了。

2. 行内移动

  1. 按照单词前后移动
    w b e W B E 
    
  • w 表示按照单词向后移动
  • b 表示按照单词向前移动
  • e表示按照单词向后移动,但是定位到单词最后一个字符前
  • 相应的大写字母表示忽略标点符号的影响
  • 说明: 该命令可在前面增加数字,表示重复多次.
  1. 按照字符查找
    f F t T 
    
  • fa 表示向右查找字符a,定位到字符a
  • ta表示向右查找字符a,定位到字符a前一个字符前
  • 相应大写表示反向查找;
  • ;表示重复执行命令
  • 表示反向执行命令
  • 说明: 该命令可在前面增加数字,表示重复多次.
  1. 定位到行首行尾
    ^ 0 $ - + ( )| 
    
  • ^, 0都是定位到行首
  • $定位到行末,可以使用数字表示定位到后面多行的末尾
A I
  • A I是定位插入命令。

3. 行间移动

  1. 定位到某行:123
  2. gg G 文首 文末
  3. H M L定位到屏幕顶、中、底
  4. zz将光标所在行移动到屏幕中央;zt移动到屏幕顶部;zb移动到屏幕底部
  5. { }段首段尾
  6. ctrl f/b 上下翻页
  7. ctrl e/y 上下滚动

4. 标记定位

  1. ma表示标记该行为a;包括第几列的信息,都在标记a里。
  2. ‘a表示跳转到标记a处;会跳转到标记a的行首。单引号’
  3. `a表示跳转到标记a处;会跳转到标记a的行,包括第几列。更精准。按键在波浪号处。
  4. :marks 底线命令可以查看标记信息
  5. ctrl o/i 移动到前/后光标所在处

5. 查找定位

  1. # * 前后查找当前光标所在处的单词
  2. /hello 向后查找关键词hello,回车就到了后面第一个hello处。
  3. ?hello 向前查找关键词hello
  4. N/n向前向后查找

3.2 复制剪切粘贴

复制粘贴是常用的命令6。其粘贴板的机理如下:

vim 有 12 个粘贴板,分别是 0、1、2、…、9、a、“、+;用 :reg 命令可以查看各个粘贴板里的内容。其中:

  • " 号粘贴板为临时粘贴板,直接按 y 就复制到这个粘贴板中了,直接按 p 就粘贴这个粘贴板中的内容;
  • + 号粘贴板是系统粘贴板,用 "+y 将内容复制到该粘贴板后可以使用 ctrl+v 将其粘贴到其他文档(如 firefox、gedit)中,同理,要把在其他地方用 ctrl+c 或右键复制的内容复制到 vim 中,需要在正常模式下按 "+p;

要将 vim 的内容复制到某个粘贴板,需要先进入命令模式,选择要复制的内容(选择模式选择),然后按 "Ny(注意带引号)完成复制,其中 N 为粘贴板号,例如要把内容复制到粘贴板 a,选中内容后按 "ay 就可以了。如命令 "5p 会将 5 号粘贴板里的内容粘贴进来,也可以按 "+p 将系统全局粘贴板里的内容粘贴进来,或者直接按p将临时粘贴板中的内容粘贴进来。

常用复制剪切粘贴命令

注意:

vim粘贴复制刚开始用的时候有个让人头疼的就是寄存器,有时候傻傻分不清楚。使用命令行:reg可以查看寄存器的情况,然后使用"指定想要的内容对应的寄存器操作即可。用几次琢磨一下,再结合官方文档等的说明,就比较清楚了。

复制:

yy 			复制游标所在行整行 
2yy/y2y 	  复制 2 行
y^    复制至行首,或y0
y$    复制至行尾
yw    复制一个word
y2w    复制两个word 
yG    复制至文件尾
y1G    复制至文件首

剪切:

dd    剪切游标所在行整行 
d^    剪切至行首,或d0
d$    剪切至行尾 
dw    剪切一个word 
dG    剪切至文件尾  

粘贴:

p    粘贴至游标后(下) 
P    粘贴至游标前(上)
要使用 系统粘贴板 的内容,也可以直接在命令模式按 Shift + Inset 进行粘贴。

4. 常用底线命令行模式命令

4.1 设置行号

# 显示行号:
:set number 
:set nu 
# 隐藏行号:
:set nonumber 
:set nonu 

该命令对当前vim有用,如果想使vim默认显示行号则需要配置vimrc文件7

/etc/vimrc   是系统范围的初始化配置~/.vimrc     个人的vim初始化配置

我们在配置文件输入set number 或者 set nu 就可以了

4.1 撤销

u/<C-r>撤销和回撤
在命令行模式下用 :undo 或 :u 命令可以撤销最近一次操作。

5. vim配置

5.1 vim光标样式设置

三种模式下光标样式区分8

"Mode Settingslet &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[4 q" "SR = REPLACE mode
let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)"Cursor settings:"  1 -> blinking block
"  2 -> solid block
"  3 -> blinking underscore
"  4 -> solid underscore
"  5 -> blinking vertical bar
"  6 -> solid vertical bar"let &t_SI = "\<Esc>]50;CursorShape=1\x7"
"let &t_SR = "\<Esc>]50;CursorShape=2\x7"
"let &t_EI = "\<Esc>]50;CursorShape=0\x7"

5.2 键修改

键是vim中最常用的按键之一,但是位置不太友好。一种方法是使用vim的重映射用jj等按键替换,但是这种和日常的操作还是不一致。因此我是用了第二种:利用PowerToys软件直接将<Caps>键和<Esc>键互换,这样就和日常的操作一致了,也的确挺好用的,就是刚开始的一段时间得改一下习惯了。

5.3 插件管理

插件管理有很多,我使用Vundle,具体使用可以参考博客9vim插件管理器:Vundle的介绍及安装(很全)

关键步骤:

  1. 安装vundle:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  1. .vimrc中配置
    此处暂略
  2. 安装插件
vim中运行命令
:PluginInstall
  1. 移除不需要的插件

编辑.vimrc文件移除的你要移除的插件所对应的plugin那一行。
保存退出当前的vim
重新打开vim,输入命令BundleClean。

  1. 其他常用命令

更新插件BundleUpdate
列出所有插件BundleList
查找插件BundleSearch


相关资料

菜鸟教程:Linux vi/vim
vim环境设置(应用于python编程)
Vim - 配置IDE一般的python环境


  1. VIM:help ↩︎

  2. sublime开启vim模式 ↩︎

  3. 菜鸟教程:Linux vi/vim ↩︎

  4. Vim编辑器五大模式介绍 ↩︎

  5. 《vim实用技巧(第2版)》 ↩︎

  6. CSDN:Qidi_Huang. vim 复制/剪切/粘贴/撤销操作 ↩︎

  7. Vim 怎么设置显示行号,永久性显示行号 ↩︎

  8. Vim 如何修改 insert 和 nomal 光标样式 ↩︎

  9. vim插件管理器:Vundle的介绍及安装(很全) ↩︎


http://chatgpt.dhexx.cn/article/sUt01qyf.shtml

相关文章

Linux学习之vim命令

无论是作为一个开发&#xff0c;或者是测试&#xff0c;亦或是运维&#xff0c;都会在很多工作中接触linux。而在linux中&#xff0c;就不得不知道一个文件编辑器。熟悉linux的人都知道的一句话&#xff1a;一切皆文件。所以&#xff0c;想要在linux中让你的操作溜起来&#xf…

vim常用指令

目录 一、模式间切换 1.插入模式 2.末行模式 3.命令模式 二、命令模式常用命令集 移动光标 复制 删除(剪切)文字 替换 撤销上一次操作 更改 跳至指定的行 三、 vim末行模式常用命令集 列出行号 跳到文件中的某一行 查找字符 保存文件 离开vim 一、模式间切换…

Vim中的常用命令总结(持续补充完善)

文章目录 前言VIM命令Vim的三种模式(1) 命令模式(2) 插入模式(3) 退出模式 跳转(1) gg &#xff1a;跳转到文件开头(2) Shift g &#xff1a;跳转到文件结尾 分割窗口(1) :vsplit &#xff1a;垂直分割(2) :split &#xff1a;水平分割窗口 VIM中常用文本处理命令查找(1) /pat…

Vim编辑器常用命令汇总

Vim编辑器的常用命令 文章目录 Vim编辑器的常用命令编辑和保存文件搜索字符串替换字符串针对程序员的配置常用命令模式切换光标移动删除、赋值、粘贴撤销和重做搜索和替换保存和退出 编辑和保存文件 vim filename为编辑一个文件&#xff0c;若此文件不存在&#xff0c;则Vim会…

vim编辑器操作命令大全-绝对全

学习链接&#xff1a; vim命令大全 http://blog.csdn.net/scaleqiao/article/details/45153379 vim命令小技巧 http://www.codeceo.com/article/useful-vim-command.html 1. 关于Vim vim是我最喜欢的编辑器&#xff0c;也是linux下第二强大的编辑器。 虽然emacs是公认的世…

vim命令

1、在命令模式下&#xff1a; 移动上下左右键移动 复制光标所在行&#xff0c;并粘贴到最后一行(yy,p)yy&#xff1a;复制光标所在行&#xff0c;p&#xff1a;将复制或剪切的内容粘贴到光标所在位置的下一行 剪切光标所在行&#xff0c;并粘贴到最后一行(dd,p)dd&#xff1…

vim常用命令

一.vim工作模式 二.一般模式下常用命令 1.一般模式下移动光标 h或者(向左方向键) //光标向左移动一个字符 j或者(向下方向键) //光标向下移动一个字符 k或者(向上方向键) //光标向上移动一个字符 l或者(向右方向健) //光标向右移动一个字符 Ctrlf …

webview是用来干什么的?

WebView 是一个用来显示 Web 网页的控件&#xff1b; 比如做 安卓开发的时候要求在你的app里面显示一个网站的内容&#xff0c;这样就需要webview插件&#xff0c;现在一些安卓手机上面都有这个选项。如果你在做开发的时候没开启这个功能的话&#xff0c;那么你的app可能加载不…

什么是webview?用在哪里?

webview 是什么&#xff1f; 首先我们先来看下它的类继承 总结&#xff1a; 首先它继承自View&#xff0c;它是一个view&#xff0c;所以它可以在Activity中方便的嵌入&#xff1b;它是一个基于webkit的引擎&#xff0c;可以解析DOM 元素&#xff0c;展示html页面的控件&…

H5+ Webview窗口对象

一、简介 Webview模块管理应用窗口界面&#xff0c;实现多窗口的逻辑控制管理操作。通过plus.webview可获取应用界面管理对象。在MUI中所有的窗口处理过程中都是在借助于H5中的webview对象来实现的。 对于HTML页面而言&#xff0c;在app中&#xff0c;这个webview是原生APP中浏…

Webview相关测试(功能+性能)

目录 常见的3中定位方式: webview操作 1.获取所有的webview的上下文句柄 handlesdriver.getContextHandles() 2.切换到想要的某个上下文句柄中 driver.context(handles.toArray()[1].toString()) 3.获取所有的窗口句柄 windowsdriver.getWindowHandles() 4.切换到对应…

android---WebView实例

现在很多 App 里都内置了 Web 网页&#xff0c;比如电商平台淘宝、京东等。那么这种该如何实现呢&#xff1f;其实这是 Android 里一个叫 WebView 的组件实现的。下面将介绍 WebView 的实例。下面的实例是以组件化为基础搭建的。 新建项目 WebView&#xff0c;然后对整个项目做…

【webview】取消自适应让webview和电脑浏览器一样的显示

改动需求 1920x1080分辨率的Android设备上&#xff0c;使用webview显示效果要和电脑浏览器一样。 Android设备上效果是这样的&#xff0c;和PC浏览器上显示效果完全不一样。 实现方法 移除自适应代码如下&#xff1a; WebView newWebView (WebView) findViewById(R.id.newWe…

WebView全面解析

WebView全面解析 简介 WebView是android中一个非常重要的控件&#xff0c;它的作用是用来展示一个web页面。它使用的内核是webkit引擎&#xff0c;4.4版本之后&#xff0c;直接使用Chrome作为内置网页浏览器。 作用 显示和渲染网页&#xff1b;可与页面JavaScript交互&…

Android【WebView】

WebView全面解析 简介 WebView是android中一个非常重要的控件&#xff0c;它的作用是用来展示一个web页面。它使用的内核是webkit引擎&#xff0c;4.4版本之后&#xff0c;直接使用Chrome作为内置网页浏览器。 作用 显示和渲染网页&#xff1b;可与页面JavaScript交互&…

初步理解 WebView

我们通常使用 Chrome, Firefox, Safari, Internet Explorer 和 Edge 等浏览器来浏览网页。你也许正在使用其中一种浏览器阅读本文&#xff01;虽然浏览器对于访问互联网内容的任务来说非常流行&#xff0c;它们还有一些我们从未过多关注过的竞争对手。这些竞争对手以 WebView 的…

AndroidStudio之WebView详解

WebView 简介: WebView是一个基于webkit引擎、展现web页面的控件。 Android的Webview在低版本和高版本采用了不同的webkit版本内核&#xff0c;4.4后直接使用了Chrome。 作用&#xff1a; 1、 显示和渲染Web页面 2、 直接使用html文件&#xff08;网络上或本地assets中&…

如何在uniapp中优雅地使用WebView

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 从webview页面传值到uniapp中 官方文档已经很详细了,这里给大家上我的实战代码&#xff0c;首先在webview页面中引入相关依赖&#xff1a; <!-- uniapp各平台依赖 --> <script type"tex…

Android:最全面的 Webview 详解

前言 现在很多App里都内置了Web网页&#xff08;Hyprid App&#xff09;&#xff0c;比如说很多电商平台&#xff0c;淘宝、京东、聚划算等等&#xff0c;如下图 那么这种该如何实现呢&#xff1f;其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用…

Android 各个版本WebView

转载请注明出处 http://blog.csdn.net/typename/ powered by miechal zhao &#xff1a; miechalzhaogmail.com 前言&#xff1a; 根据Google公布的Android 各个系统版本市场占有率(Google Android dashboards), Android 4.0及其以上系统将近90%左右&#xff0c;发展趋势必…