window下vim初学_Vim命令初学者指南

window下vim初学

我认为可能是时候记住vim命令了。 在我的高中时,我们所有的CS课程都要求我们学习emacs和终端命令 。 虽然我确实对vim有粗略的了解(足以保存git commits并退出窗口),但我并不一定具有足够的知识来完全忽略键绑定。

最近,我偶然发现了以模仿《塞尔达传说》为原型的可爱的基于文本的游戏Vim Adventures。 它教了一些更基本的vim命令,并大大降低了学习曲线(特别是vi和vi以其界面极其简约而著称,但其中包含许多对于常规使用通常至关重要的快捷方式-有点像街头霸王和VSCO)。

无论如何,当我在游戏中不断前进时,我意识到拥有某种速查表可能会有所帮助。 游戏以特定顺序列出了您需要了解的所有主要命令。

这是我的词汇表版本,但有更多的顺序:

一般

[count]:指定命令将被迭代的次数,默认为1

<Del>:删除光标后面的最后一个字符

yank:存储文本,但不修改文本(复制文本)

标记:为导航目的在文件内设置的隐藏位置

  • `<mark>:将光标直接放在标记上
  • '<mark>:将光标置于标记行的第一个非空白字符上

寄存器:指定存储在内存中的文本。 有九种类型:

  • 未命名的寄存器“”
  • 编号寄存器“ 0-” 9
  • 小删除寄存器“-
  • 命名寄存器“ a-” z
  • 黑洞寄存器“ _
  • 四个只读寄存器“; /”,/“%/”#
  • 表达式寄存器“ =
  • 选择和下降寄存器“ * /” + /”〜
  • 最后搜索模式“ /

nu,nonu:在文本的每行前面显示行号

  • :set nu:显示行号
  • :set nonu:隐藏行号
  • :set nu !:切换行号
  • :set nonu !:切换行号。

主要

Esc:退出键-将当前模式退出到“命令模式”

i:用于插入文本的插入模式

::用于插入命令的最后一行模式(保存文档,帮助)

q:允许您退出或退出vi

  • q !:强制退出
  • wq:退出,将修改后的文件写到原始文件

卷动

[count] h:将光标向左移动一个空格

[count] j:将光标向下移动一个空格

[count] k:将光标向上移动一个空格

[count] l:将光标向右移动一个空格

[count] w:将光标移至下一个单词的开头(标点符号视为单个单词)

[count] W:将光标移动到下一个单词的开头(单词是由空格分隔的字符/标点的序列)

e:将光标移至下一个单词的末尾(标点符号视为单个单词)

E:将光标移至下一个单词的末尾(单词是由空格分隔的字符/标点的序列)

[count] b:将光标移至上一个单词的开头(标点符号视为单个单词)

[count] B:将光标移至上一个单词的开头(单词是由空格分隔的字符/标点的序列)

0:将光标移至行首

^:将光标移动到该行的第一个非空白字符

[count] $:移至行尾或[count] -1行

[count] f {char}:将光标移到右侧第[count]个{char}

[count] F {char}:将光标移到左侧第{count}个第[count]次

[count] t {char}:将光标{char}的第[count]次出现之前向右移动一个空格

[count] T {char}:将{char}的第[count]次出现后向左移动光标一格

[count] ;:重复最后一个f / F / t / T命令

[count] ,:沿相反方向重复最后一个f / F / t / T命令

导航(围绕文档)

[count](:导航到上一个句子的开头(一个句子以'。','!'或'?'结尾,后跟一个空格或换行符)

[count]):导航到下一个句子的开头(一个句子以'。','!'或'?'结尾,后跟一个空格或换行符)

[count] {:将光标移至当前段落之前的空白行

[count]}:将光标移至下一段之前的空白行

[count] gg:导航到文档的第[count]行,默认情况下转到第一行

[count] G:导航到文档第[count]行的第一个非空白字符,默认情况下转到最后一行的开头

[count] [{,[(,]),]}:转到上一个(或下一个)不匹配的'{'')',从但不包括当前光标位置开始

[count] |:将光标移动到当前行的第[count]列

导航(在窗口周围)

z:将光标线重画到:

  • zt:窗口顶部
  • zz:窗口中间
  • zb:窗口底部

[count] H:从窗口的第一行到第[count]行的第一个非空白字符,无需滚动屏幕

M:到窗口中线的第一个非空白字符

[count] L:从窗口的最后一行到第[count]行的第一个非空白字符

搜索

*:向前搜索当前行中最接近光标的单词的第[count]个出现。 搜索的单词是第一个

  • 光标下方的关键字(AZ,az,0–9,_,@)
  • 光标后的第一个关键字
  • 光标下的非空白单词
  • 光标之后的第一个非空白单词

#:与*相同,但向后搜索

[count] / {pattern}:向前搜索图案,默认为最后一个图案

[count]?{pattern}:向后搜索图案,默认为最后一个图案

[count] n:重复最后一个“ /”或“?” 搜索

[count] N:重复最后一个“ /”或“?” 反向搜索

%:在该行上或其后找到下一个项目,然后跳转到其匹配项(包括([{{}])/ * * / #if #ifdef #else #elif #endif)

选拔

注意:节略,请参阅文本对象以获取更多详细信息

[count] aw:选择单词及其后的空白,除非光标位于单词前的空白中(然后包括之前的空白)

[count] aW:选择一个WORD及其后的空白,除非光标位于WORD之前的空白中(然后包括之前的空白)

[count] iw:选择一个单词(空格算作单词)

[count] iW:选择一个WORD(空格作为WORD计数)

[count] as:选择一个句子及其后的空白,除非光标位于该空白之前(然后包括之前的空白)

[count]是:选择一个句子(空格作为句子计数)

[count] ap:选择一个段落及其后的空白,除非光标位于该空白之前(然后包括之前的空白)

[count] ip:选择一个段落(空格算作段落)

删除中

[count] x:删除当前行中光标下方和之后的字符

[count] X:删除当前行中光标之前的字符

[count] r {char}:将光标下方的字符替换为{char}

d {motion}:删除{motion}移过的字符/单词

[count] dd:删除整行,无论光标在行中的位置如何

[count] D:删除光标下方的字符,直到该行的末尾,再增加[count] -1行

[count]〜:切换光标下方字符的大小写并将光标向右移动

:delm {args},:delmarks {args},:delm !,:delmarks !:删除指定的标记,包括az,AZ; 对于!,将删除所有现有的az标记

文字修改

[count] p:将来自指定寄存器的文本放在光标之后。 如果未指定寄存器,请使用未命名的寄存器(“),其中包含最后一个被删除,更改或删除的文本

[count] P:将来自指定寄存器的文本放在光标之前。 如果未指定寄存器,请使用未命名的寄存器(“),其中包含最后一个被删除,更改或删除的文本

[count] .:重复最后一次简单的更改,默认为最后一次更改的计数(如果最后一次更改包含编号的寄存器,则寄存器编号将递增)

插入模式命令

注意:Esc退出插入模式

[count] i {text}:在光标之前插入文本

[count] I {text}:在该行的第一个非空白字符之前插入文本

[count] a {text}:在光标后附加文本,如果光标在空行的第一列,则从此处开始插入

[count] A {text}:将文本附加到行尾

[register] c {motion}:删除运动

[register] [count] cc:删除行到寄存器并开始插入(逐行)

[register] [count] C:从光标位置删除到行尾,再将[count] -1行插入寄存器并开始插入

[register] [count] s:删除或替换字符到指定的寄存器中,然后开始插入(不是逐行),“ cl”的同义词

[register] [count] S:cc的同义词

[count] o {text}:在光标下方开始新行并插入文本

[count] O {text}:在光标上方换行并插入文本

扬京

[register] y {motion}:将{motion}文本插入寄存器,默认情况下存储在“ 0 register”中

[register] [count] yy:将行拖入寄存器,该行中的光标位置无关紧要

[register] [count] Y:yy的同义词

撤销重做

[count] CTRL + R,:redo:重做撤消的更改

[count] u,:undo:撤消更改

寄存器

:reg {arg}:显示{arg}指定的编号和命名寄存器的内容,或默认列出所有内容

文字对象

单词:字母/数字/下划线或由空格(空格,制表符,<EOL>)分隔的非空白字符的序列,包括空行

WORD:一系列由空格(空格,制表符,<EOL>)隔开的非空白字符,包括一个空行

句子:以“。”,“!”或“?”结尾的一系列单词 跟一个空格或换行符

段落:以换行符结尾的一系列句子

文本对象:操作后使用两个字符来指定操作范围。 第一个字符是“ a”(一个对象,包括空白)或“ i”(内部对象,没有空白或只有空白)。 第二个字符确定对象类型

  • w,W,s,p(单词,单词,句子,段落)
  • “,”,“(带引号的字符串)
  • {,},B({}块)
  • (,),b(()块)
  • [,]([]块)
  • <,>(<>块)
  • t(HTML / XML标签块)

有兴趣了解更多吗?

幸运的是,在线上有大量资源可以帮助您适应vi / vim环境。 这些站点的范围可帮助您记住基本的键绑定和快捷方式,以设置自己的宏并自定义工作环境。 您很快就会发现,vi / vim比简单的文本编辑器具有更多的实用性!

您觉得本指南有帮助吗? 如果是这样,给它“拍手”和分享!

随时在网上其他地方找到我:

推特 @sharontlin

脸书 @sharonlinnyc

GitHub @ sharon-lin

翻译自: https://hackernoon.com/a-glossary-of-vi-commands-e17cbc5b12f1

window下vim初学

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值