Java教程

浅谈算法竞赛中 vim 的使用

本文主要是介绍浅谈算法竞赛中 vim 的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

众所周知, vim 写代码很快, 但 vim 编辑器本身没有常见IDE那样的多功能性(即使可以, 但很折腾). 更有性价比的方式是 IDE + vim 插件的组合.

以我所知, vscode, JB全家桶(Pycharm, IDEA, Clion), Sublime Text 都支持 vim 插件, 但没有原生vim 的扩展性强, 若仅仅看重 vim 的写代码快捷性, 显然是足够了.

下面来谈谈 vim 常用的三种模式, NORMAL(N) ,INSERT(I), VISUAL(V)常用的按键组合

更全面的请查阅 菜鸟教程 或此篇博客

NORMAL 模式

习惯 normal 模式就学会了 vim 的一大半

  • 基础光标移动,

    • h 左移, j 下移, k 上移, l 右移
    • xh, 其中 x 代表数字, xh 则代表向左移动 x 格, 类似 xj 代表向下移动 x 行, 可以用来快速跳行和列
    • 0 光标指向行首, $ 光标指向行末, 如果想要直接在行末编辑请看后续
    • gg 移动到文本开头, G 移动到文本结尾行
    • w 跳到下一个"单词"开头处(不算常用)
  • 替换

    • r 对当前光标自负进行替换, 例如输入rc 可将当前下标字符替换成 c 字母
  • 剪切(删除)

    • dd 对当前行进行剪切(删除),
    • dxd 其中 x 是一个数字, 对下面 x 行(包括当前行) 进行剪切(删除)
    • x 对当前光标字符进行剪切(删除), 执行后依然在 N 模式
    • ggdG 删除(剪切) 全文
  • 复制/粘贴

    • y 对当前下标字符复制, yy 对当前行进行复制
    • p 粘贴
  • 撤销/重做

    • u 撤销, Ctrl + R 重做, 两者逻辑根据实际情况有所变化, 大部分情况不会出差错
  • J 快速将下一行字符移动到当前行行末

NORMAL 模式快速进入 INSERT 模式 (useful)

  • A 光标直接指向行末开始编辑 (是大写 A )
  • o 在下一行插入空白行并在下一行开头开始编辑, O 是在上一行同理
  • s 将当前光标字符剪切(删除), 执行之后进入 I 模式, S 是将当前行剪切(删除)

INSERT模式

  • 通常情况下, 在NORMAL模式下按 ia 进入, 关标位置的转换位置不同

  • 其他与普通文本编辑器功能无差别

VISUAL模式

  • N 模式下按 v 进入, 然后对光标进行移动, 通常用于对代码文本进行选中

功能

  • 代码缩进, 选中目标代码行后, 按 shift + < or > 实现 左/右缩进, 缩进完以后需要重新按 vN 模式进入 V 模式, 稍微有点鸡肋...
  • 当然可以在选中代码后, 使用 N 模式下对应的功能按键进行操作, 比如 d, x 进行剪切, y 进行复制, 粘贴格式与 N 模式下的复制粘贴格式有所不同, 自行体会
  • gg + v + G + $ + (系统级复制 ctrl + c) 可以将代码全部复制(好吧我承认 I 模式 ctrl + a 也可以)
这篇关于浅谈算法竞赛中 vim 的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!