vim

2023-10-31

three basic mode of vim

  1. command mode, also is default mode. all the alphanumeric keys are bound to commands. Typing dd will delete an entire line.
  2. insert mode: type i (for insert) to enter the insert mode and the keys will behave what u expect. Hit the Escape key to get out.
  3. last-line mode: type :when you`re at command mode and vim will switch to last-line mode. u can use :w to write a file or :q to exit the editor.

basics of moving in vim

20201213194746

prefacing a movement command with a number will execute that movement multiple times

editing vim style

xto delete the character that the cursor was on

20201213194804

several commands combine a text operation and movement key.

you may combine something together like verb+noun. and the answer of vim is often yes

searching and replacing

20201213194821

about how to clear last searching highlighting in vim

20201213194839

:nohreally helps a lot

copying and pasting

if you`ve run dd and delete an entire line, you can now hit p and paste it back into the document.

20201213194851

a usual paste operation might look like this: hit v or V to highlight some text, then hit y to yank(put) it into the buffer, then move the cursor where u want to it, and hit p in command mode. There you go.

saving and quiting

:w to write the file to the existing file.

if u want to write out to a different filename or u don`t have the file, use :w filename

use :q to quit vim and :q!to quit without being nagged

ZZalso can be used to saving and quiting.

vim会在原始文件的目录下生成.swp文件,称为交换文件,用于由于意外退出vim时恢复文件内容

使用set directory=$HOME/.vim/swap//来将交换文件存于统一目录中,防止污染系统

或者使用set noswapfile禁止交换文件

we用于逐个狭义单词的移动 e for end

W E用于广义单词的移动,即以空格分割的非空字符序列视为单词

b B用于移动到狭义或广义单词的开头

{ } 用于向后或向前移动段落,其中段落以空行分割

c用于删除一部分文字后立即进入插入模式,比如cw删除一个单词并进入插入模式 c for change?

缓冲区

使用:ls查看当前缓冲区列表

含义分别为缓冲区编号 \%表示该缓冲区位于当前窗口中 \\a表示该缓冲区处于活动状态,他已被加载并可见 \\文件名 \\当前光标位置

使用:e <filename>打开另一个文件

使用:b <num>来在缓冲区之间进行切换 其中空格可以省略

缓冲区还可以用文件名来标识,所以可以使用文件名的一部分来切换缓冲区,但是当出现多个匹配的时候会报错

也可以使用:bn(bnext)或者bp(bprevious)来循环遍历缓冲区

当不需要某个缓冲区的时候,可以将其删除:bd

使用umimpaired插件来 使用[b]b来遍历缓冲区

[f]f来循环遍历同一目录中的文件

:split <filename>来将窗口分割成两个,其中一个显示新的文件

:vsplit <filename>来按照水平方向分割窗口

可以使用简写:vs :sp

使用Ctrl + w 再输入一个方向键h j k l来进行光标在窗口间的移动

使用Ctrl + w, q来关闭当前窗口

使用Ctrl + w, o来关闭除当前窗口之外的所有窗口

使用Ctrl + w 再输入一个大写的方向键H J K L来移动当前的窗口

有关窗口的大小

使用Ctrl + w, =将打开窗口的宽高调为一致

resize +N/-N将当前窗口的高度增加/减少N行

vertical resize +N/-N 将当前窗口的宽度增加/减少N列

同时可以简写为res vert res

Ctrl + w, +/-用来调整高度

Ctrl + w, </>用来调整宽度

也可以直接设置为具体的行数/列数

resize N vertical resize N

标签页

tabnew <filename>表示新建一个标签页,如果没有文件名就是新建一个空的标签页

在标签页中可以通过:e来加载文件,也可以用:b在不同缓冲区间切换

在不同标签页间跳转,可以使用

  • 快捷键gt 或tabnext用于切换到下一个标签
  • 快捷键gT或tabprevious切换到上一个标签

标签页可以使用:tabclose来关闭,也可以使用:q

:tabmove N用于将当前标签页移动到第N个标签页之后

NERDTree

使用:Bookmark来收藏当前光标在NERDTree中选择的目录,在NERDTree中按B可以列出所有的书签

文本浏览

t (until) 后接一个字母 用于在当前行内搜索该字符,并将光标置于该字符前 T用于反向搜索

f (find) 后接一个字母 用于在当前行内搜索该字符,并将光标置于该字符上 F用于反向搜索

_用于将光标放到行首 0也可以

切换到插入模式

i表示在当前光标处进入插入模式

a表示在当前光标后面

A表示在当前行尾

I表示在行首

o表示在下面新增一行,进入插入模式

O表示在上面新增一行,进入插入模式

easymotion

\\表示前导符号 easymotion的指令都要先加上前导符号

\\w表示逐个单词的移动方式

\\f 表示向右查找字符 F表示向左

同样的还有t 和T

和之前相同,wbe都可以用于单词的跳动

w ge表示向后跳 一个开头 一个末尾

b e表示向前 一个开头 一个末尾

寄存器

y 和 p就是从寄存器中进行的复制粘贴,但是是无名寄存器 用"表示

寄存器的访问方式是",后接寄存器的标识符

a~z所标识的寄存器用于手动复制数据

数字编号的寄存器表示最后10次删除操作的历史记录

%表示当前文件名 :储存最后的命令等

使用reg <name>来访问寄存器的内容

+寄存器(针对linux)表示粘贴板选择器,即ctrl+c操作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vim 的相关文章

  • 如何在 vim 中覆盖 ~/.vim 和 ~/.vimrc 路径(但不能覆盖其他路径)?

    假设我有一个所有 vim 配置的 tarball 通常在 vim 中的所有内容 插件 自动加载 颜色 所有这些东西 和一个 vimrc 文件 我将其提取到某个目录中 所以在我所在的目录 PWD 中 有一个 vim 文件夹和一个 vimrc
  • 为什么使用 键取消搜索时 vim incsearch 会暂停?

    在 vim 中 如果你set incsearch然后它将滚动到当前搜索词的下一个匹配项 而无需移动光标 我经常用它来阅读一段代码而不用将光标移动到那里 因为我可以点击
  • 在 COC vim 中自动从自动完成预览中选择第一项?

    有没有办法让 coc vim 自动选择第一个预览建议而不是使用箭头键 我使用的是 vim 8 1 Add suggest noselect false到你的 coc settings json 您可以在 coc 文档中找到该设置
  • 这个格式错误的命令实际上发生了什么?

    问题在Vim 向后范围 可以交换 https stackoverflow com q 28224540 1427295原来是失踪了g在命令中 2 userid d 但是该命令仍然会运行 并将其转换为 userid firstname sur
  • vim e518:未知选项:

    我在 UNIX 系统上有一个文本文件 以下文本文件内容会产生问题 good ok line vi bad line ok ok line 所以如果我运行 vim test txt 我收到以下错误 test txt 3L 39C Error
  • 设置 vim 命令的键盘快捷键

    说我想要
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 我可以在 VIM 或 Perl 中替换单个正则表达式中的多个项目吗?

    假设我有字符串 The Quick Brown Fox Jumps Over the Lazy Dog 我可以用一个正则表达式将其更改为 The Slow Brown Fox Jumps Over the Energy Dog 吗 目前 我
  • Vim:领导不工作

    当尝试使用时vim latexsuite的映射 使用的是Leader不工作 nmap n
  • 有没有办法改变vim的默认模式

    有谁知道如何更改vim的默认模式 它的默认模式是命令模式 但是我可以将其更改为插入模式吗 只需将以下行添加到您的 vimrc 中 start Vim s default mode will be changed to Insert mode
  • Vi/vim - 从末尾行删除,包括最后一个字符

    我想做类似这个问题的事情VI VIM 删除 更改从右到左 https stackoverflow com q 9154212 301527即从行尾删除到该行中 的最后一个实例 这可以使用dT 将光标放置在该行的末尾 然而 这个命令和其他这样
  • 如何在 Vim 中使 shift+空格键向上翻页?

    我的 vimrc 中有一个条目 当我按空格键时 它会在视口中向下翻页 它看起来像这样 map
  • 强制 vim 覆盖外部更改

    我使用 Vim 7 4 Mac OS 编辑和运行 Lua 脚本 我已经在 vimrc 中映射了一个键来保存当前缓冲区并运行外部脚本 vimrc 中的按键映射 map V w
  • VIM 分块插入

    我想在 VIM 中选定的文本块的开头插入一个哈希 Ruby 注释 我在可视模式下选择了线条 但如何对所有线条执行相同的操作 您有两个主要选择 在块视觉模式中选择 ctrl v 然后使用I沿着整个块的左侧插入相同的东西 相似地A追加 看分块运
  • Vim 错误格式和 jslint

    我正在尝试让 makeprg 和 errorformat 与 VIM 和 jslint 一起使用 但似乎无法为我的生活提供正确的错误格式 我正在使用 jslint 的 NodeJS 版本 它会产生如下结果 1 116 9 The body
  • Vim:垂直选项卡列表可以吗?

    是否可以让 vim 的选项卡列表垂直显示在编辑器的左侧 这确实很有帮助 但我还没有找到任何可以做到这一点的插件 我对谷歌很烂吗 我同意兰迪关于选项卡使用的观点 但前段时间我也在寻找在 gvim 中添加垂直制表符的可能性 为此 您必须修改源
  • Vim 插入模式下光标线颜色变化

    有一个很好的片段可以改变光标颜色 if term xterm rxvt use an orange cursor in insert mode let t SI
  • 如何设置 Vim 进行 Android 开发?

    谁能描述一下用于 Android 开发的良好 Vim 设置吗 我现在使用 Eclipse 但我真的很想使用 Vim 因为它更快 而且我更喜欢它 例如 我对 Eclim 不感兴趣 我对使用哪些 Vim 插件 用于 Java 自动完成等 如何
  • vim 中的 python 2 支持

    我正在尝试设置 YouCompleteMe 一个 vim 代码完成插件 当我运行 vim 时 它给我这个错误消息 YouCompleteMe unavailable 需要 python 2 x 我的 ubuntu 机器上安装了正确版本的 p
  • 代码折叠未保存在我的 vimrc 中

    我将以下代码添加到我的 vimrc 中 save and restore folds when a file is closed and re opened autocmd BufWinLeave mkview autocmd BufWin

随机推荐

  • 阿里云ECS(CentOS 7.3)的搭建过程

    一 安装JDK和配置环境变量 1 创建jdk安装目录 创建过则跳转即可 mkdir p usr local src 2 使用wget命令下载jdk包 wget no check certificate no cookies header C
  • 数组中常用的方法

    一 push 方法和 pop 方法 push 方法用于向数组末尾添加一个或多个元素 并返回修改后的数组的新长度 const fruits 苹果 香蕉 const res fruits push 橘子 西瓜 console log fruit
  • Vue + Element UI+Scss + Vuex一键换肤 , 一键换字体大小 ,动态替换全局主题颜色

    一 前言 其实我这个写法每个UI库都通用 不局限于ElementUI 看明白思路就知道怎么写了 一键换肤 动态替换全局主题颜色功能已经实现很久了 在项目验收的时候出现了一个小问题 想改动一下 于是来记录一下 前段时间公司项目里需要实现一键换
  • get 和 post 的区别

    使用场景 GET请求一般用于向服务器请求数据 POST请求一般用于向服务器提交数据 请求参数的位置 GET请求通常将参数放在URL的 query 中 POST 请求通常会将数据放在请求体 body 中 GET请求通常将参数放在URL的 qu
  • unity 2D中,实现点击按钮可以游戏暂停的效果

    在Unity 2D中 可以通过以下步骤和代码来设置一个按钮 实现游戏暂停的效果 创建一个空对象 命名为 GameManager 用于管理游戏状态 在GameManager对象上添加一个脚本 命名为 PauseManager 在脚本中添加以下
  • 简述“自顶向下,逐步求精”——面向过程程序设计方法

    引入 所谓 自顶向下 逐步求精 的程序设计方法 网络上有着如下的说法 一者是百度百科所述 另一者则为维基百科的说法 自顶向下设计 一种逐步求精的设计程序的过程和方法 对要完成的任务进行分解 先对最高层次中的问题进行定义 设计 编程和测试 而
  • C# 联合Halcon开发的完整项目案例(三套完整源码)附下载连接

    C 联合Halcon开发的完整项目案例 三套完整源码 点我下载三套项目源码 1 C 联合Halcon开发的程序 一整套源码 相机点胶定位 图像采集 数据查询相机间通讯具体情况如下图所示 案例注释详细 方便二次开发 2 C Halcon Vi
  • 从零开发校园商铺平台(SSM到SpringBoot)一.开发准备,实体类设计与表创建

    依山傍水房树间 行也安然 住也安然 一条耕牛半顷田 收也凭天 荒也凭天 雨过天晴驾小船 鱼在一边 酒在一边 夜晚妻子话灯前 今也谈谈 古也谈谈 日上三竿犹在眠 不是神仙 胜似神仙 一 开发准备 创建maven项目 解决项目报错 新增pom
  • Chrome插件(扩展)开发全攻略

    目录 写在前面 仓库说明 前言 什么是Chrome插件 学习Chrome插件开发有什么意义 为什么是Chrome插件而不是Firefox插件 开发与调试 核心介绍 manifest json content scripts backgrou
  • qRegisterMetaType

    如果要在Qt信号槽中使用自定义类型 需要注意使用qRegisterMetaType对自定义类型进行注册 当然在不跨线程时使用自定义类型signal slot来传递 可能不会出现什么问题 一旦涉及跨线程就很容易出错 回想下信号槽的作用就是用来
  • 机器学习——朴素贝叶斯分类器及sklearn实现

    前言 参考 机器学习 简单介绍朴素贝叶斯分类器 机器学习专栏 机器学习专栏 文章目录 一 贝叶斯定理 二 贝叶斯分类法 三 sklearn实现贝叶斯分类 一 贝叶斯定理 贝叶斯定理 Bayes theorem 是概率论中的一个定理 描述在已
  • Metasploit search参数

    msfvenom 参数 q快速启动msf 不显示banner信息 x加载模块代码 p payload lt payload gt 指定需要使用的payload 攻击荷载 也可以使用自定义payload 几乎是支持全平台的 l list mo
  • ThinkPHP3.2.3关闭调试模式及做些修改

    1 首先在入口文件中关闭调试模式 开启调试模式 建议开发阶段开启True 部署阶段注释或者设为false define APP DEBUG false 2 修改 Conf config php 异常页面的模板文件 TMPL EXCEPTIO
  • Cookie与Session深入理解(一)——Cookie

    基本操作 HttpServletRequest request HttpServletResponse response 1 获取cookies Cookie cookieList request getCookies 2 根据cookie
  • 力扣312题:戳气球

    力扣312题 戳气球 题目描述 有 n 个气球 编号为0 到 n 1 每个气球上都标有一个数字 这些数字存在数组 nums 中 现在要求你戳破所有的气球 戳破第 i 个气球 你可以获得 nums i 1 nums i nums i 1 枚硬
  • 机器学习深度学习数据集大汇总

    寻找一个好用的数据集需要注意一下几点 数据集不混乱 否则要花费大量时间来清理数据 数据集不应包含太多行或列 否则会难以使用 数据越干净越好 清理大型数据集可能非常耗时 应该预设一个有趣的问题 而这个问题又可以用数据来回答 数据集发布平台 A
  • linux安装pycharm详细步骤

    一 用xftp远程根据把解压后的安装包文件上传到指定目录 opt module 然后 cd opt module pycharm community linux 2018 1 4 bin 执行以代码 chmod u x pycharm sh
  • C++小游戏---坦克大战(二)(加入传送门)--附完整代码

    目录 素材整理 穿越草地 坦克穿越草地 子弹穿越草地 传送门 判定形式 生成传送门 传送坦克 关卡模式 效果展示 总结 完整代码 上一篇坦克大战居然意外获得了一些关注 正好最近也完善了一些功能 同时也加入了一些自己想到的新元素 主要是关于穿
  • 基于Matlab实现图像去噪技术(附上完整源码+图像+程序运行说明)

    图像去噪是数字图像处理中一个重要的问题 它的目标是恢复由于噪声引起的图像质量下降 噪声可以由各种原因引起 如图像传感器的不完美性能 图像传输过程中的干扰等 在实际应用中 图像去噪技术被广泛应用于医学图像处理 计算机视觉 图像识别等领域 本文
  • vim

    three basic mode of vim command mode also is default mode all the alphanumeric keys are bound to commands Typing dd will