vim常见操作

复制

yank, y

  • yy:复制整行 nyy/yny

  • y^/y0:复制当前行到行头的内容

  • y$:复制当前到行尾的内容

  • yw:复制一个word nyw/ynw 复制n个word

  • yG:复制到文档结尾 nyG/ynG :删除当前光标所在行到第n行

剪切(删除)

delete, d

操作类似于复制,此处不赘述

  • dd

  • dj/dk:删除上/下一行

  • d^/d0

  • d$=D

  • dw

  • daw:删除当前字符所在单词

  • dG

  • x:删除当前光标所在字符,相当于delete

    X:删除光标前一个字符,相当于backspace

    nx/nX

粘贴

put, p

  • p:小写p代表贴至游标后,整行复制贴在游标下行

  • P:大写P代表贴至游标上,整行复制贴在游标上方

tips:

u:撤回上一个动作

ctrl + r:恢复上一个动作

.:重复上一个动作

选择

v:按行选择

ctrl+v:按块选择

全选:ggvG/ggVG (gg是为了回到文档第一行)

选中之后可按y复制或者d剪切,然后p粘贴

移动光标

  • ctrl + f:向下移动一页

  • ctrl + b:向上移动一页

  • 0/home:移动到本行最前面

  • $/end:移动到本行行尾

  • G:移动到文档最后一行

  • gg:移动到文档第一行

  • nG:n为数字,移动到文档的第n行

  • n<enter>:n为数字,光标向下移动n行

  • h/j/k/l 左/上/下/右移动

  • nh/j/k/l n为数字

搜索替换

  • /<word>:向光标之下搜索字符串<word>

  • ?<word>:向光标之上寻找字符串<word>

  • *:向后(下)寻找游标所在处的单词

  • #:向前(上)寻找游标所在处的单词

  • fx 找到光标后第一个为x的字符 3fd 找到光标后第三个为d的字符

    F 同f,反向查找。

    tips:

    • 配合n/N使用向上/下继续查找要搜索的word

    • :set ignorecase 不区分大小写 :set smartcase:区分大小写

    • 若想只在查找某个字符串时忽略大小写,只需在字符串前加\c,如:/\cword;大小写铭感则是/\Cword

    • /word\>表示只匹配以word为结尾的单词;/\<word表示只匹配以word为开头的单词;/\<word\>表示匹配完整的word这个单词

  • cc:替换本行,即删除当前行并在此行插入

  • cw:替换本单词,即删除当前单词并在此插入

  • ~:反转游标所在字母的大小写

  • :s/word1/word2/ 替换当前行第一个 word1为 word2

    :s/word1/word2/g 替换当前行所有 word1为 word2

  • :n1,n2s/word1/word2/:在n1-n2行搜索,,每一行的第一个word1用word2替代

    :n1,n2s/word1/word2/g:在n1-n2行搜索,所有word1用word2替代

  • :%s/word1/word2/(等同于 :g/word1/word2/) 替换每一行的第一个 word1为 word2

    :%s/word1/word2/g(等同于 :g/word1/word2/g) 替换每一行中所有 word1为 word2

  • :.,+ns/word1/word2/g:n为数字,表示在当前行以及+n中进行替换

  • :1,$s/word1/word2/g或者:%s/word1/word2/g:第一行到最后一行搜索word1并用word2替代

  • :1,$s/word1/word2/gc或者:%s/word1/word2/gc:第一行到最后一行搜索word1并用word2替代,替代前需要用户确认是否替换

conclusion:

g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对文档中所有包含搜索字符串的行进行替换操作。

vim 环境调整

  • :set nu/number 显示行号

  • :set nonu 不显示行号

  • :set smartindent 自动缩进

最新文章

  1. dedecms 文章页图片改为绝对路径
  2. 【JUC】JDK1.8源码分析之ConcurrentLinkedQueue(五)
  3. CentOS开机无法进入系统,如何查错
  4. HDu1003(maxn sum)
  5. LeetCode Single Number III
  6. PHP上传文件详解 错误提示
  7. ORACLE EXP命令
  8. C蛮的全栈之路-node篇(一) 环境布置
  9. PHP文章管理(2)
  10. 如何判断一个变量是数组Array类型
  11. CSS之box-sizing的用处简单介绍
  12. linux下sophos,clamav+clamtk杀毒软件
  13. JAVA进阶7
  14. 第五次编程作业-Regularized Linear Regression and Bias v.s. Variance
  15. java 读取外部和source下配置文件
  16. Linux 学习笔记 3:Shell 基础
  17. [iOS]创建界面方法的讨论
  18. GUI_文件管理器(练习)
  19. Typecho博客迁移
  20. 简易selenium自动化测试框架(Python)

热门文章

  1. leetCode刷题 | 两数相加
  2. neo4j在docker容器环境中无法启动的问题
  3. Spring JDBC 框架使用JdbcTemplate 类的一个实例
  4. HDU 2012 (水)
  5. JS理论--正则表达式RegExp的创建、元字符、优先度、方法(test(),exec(),match(),replace())
  6. 黑马程序员_毕向东_Java基础视频教程——位运算练习(随笔)
  7. 感觉shopex现在的升级方式太慢了
  8. Appium自动化(10) - appium高级元素定位方式之 UI Automator API 的详解
  9. spark机器学习从0到1介绍入门之(一)
  10. python3.x 基础一