ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

浅谈算法竞赛中 vim 的使用

2022-06-06 01:02:33  阅读:213  来源: 互联网

标签:浅谈 删除 模式 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,算法,当前,剪切,光标
来源: https://www.cnblogs.com/Roshin/p/vim_in_Competitive_Programming.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有