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 自动缩进

vim的常见操作的更多相关文章

  1. 超级编辑器--VIM的常见操作

    如下,都是我常用的 删除单词:  d + w 关闭vim窗口:   :q   或者 shift + zz 全部向左移: shift + v  --->  shift + <   ---&g ...

  2. Linux常见操作

    前面的话 本文将详细介绍Linux常见操作 基本概念 Linux严格区分大小写,所有内容以文件形式保存,包括硬件 Linux没有扩展名的概念,不靠扩展名来区分文件类型.但有一些约定俗成的扩展名 压缩包 ...

  3. mongodb数据库安装及常见操作

    客户端和服务端的安装 # rpm -ivh mongo-10gen-2.4.6-mongodb_1.x86_64.rpm mongo-10gen-server-2.4.6-mongodb_1.x86_ ...

  4. github常见操作和常见错误及其解决办法

    一.常见操作 1. 使用git在本地创建一个项目的过程 $ makdir ~/hello-world //创建一个项目hello-world $ cd ~/hello-world //打开这个项目 $ ...

  5. vim 常用的操作指令

    vim(vi improve).命令行下的一些常见操作: 移动光标: 0:将光标移动到该行的最前面: $:将光标移动到该行的最后面: G:移动到最后一行的开头: {/}:将光标移动到前面或者后面的{/ ...

  6. 动态单链表的传统存储方式和10种常见操作-C语言实现

    顺序线性表的优点:方便存取(随机的),特点是物理位置和逻辑为主都是连续的(相邻).但是也有不足,比如:前面的插入和删除算法,需要移动大量元素,浪费时间,那么链式线性表 (简称链表) 就能解决这个问题. ...

  7. C#路径/文件/目录/I/O常见操作汇总

    文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...

  8. X-Cart 学习笔记(四)常见操作

    目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 五.常见 ...

  9. 转:jQuery 常见操作实现方式

    http://www.cnblogs.com/guomingfeng/articles/2038707.html 一个优秀的 JavaScript 框架,一篇 jQuery 常用方法及函数的文章留存备 ...

随机推荐

  1. 如何将项目上传至GitHub?

    心血来潮的一天,突然想写点什么哈哈哈哈. 那就写写如何将项目上传到GitHub(矫情,上传个项目还要写个文章) 第一步:下载Git https://git-scm.com/download/win 下 ...

  2. iOS的内存管理和引用计数规则、Block的用法以及三种形式(stack、malloc、global)

    学习内容 iOS的内存管理和引用计数规则 内存管理的思考方式 自己生成的对象自己持有 非自己生成的对象自己也能持有 自己持有的对象不需要时释放 非自己持有的对象不能释放 ARC有效时,id类型和对象类 ...

  3. 基于情感词典的python情感分析

    近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...

  4. u-boot: Not enough room for program headers, try linking with -N

    在编译u-boot的时候出现了以下错误: arm-linux-gnueabi-ld.bfd: u-boot: Not enough room for program headers, try link ...

  5. Linux设备模型之kobject

    阿辉原创,转载请注明出处 参考文档:LDD3-ch14.内核文档Documentation/kobject.txt,本文中使用到的代码均摘自Linux-3.4.75 ----------------- ...

  6. .NETcore中使用jwt来对api进行身份验证

    对于 登陆,身份,授权这之类的操作,我们最常用的几种方法无非就是 cookie session token 这三者的差别 https://www.cnblogs.com/moyand/p/904797 ...

  7. [hdu5372 Segment Game]树状数组

    题意:有两种操作:(1)插入线段,第i次插入的线段左边界为Li,长度为i (2)删除线段,删除第x次插入的线段.每次插入线段之前询问有多少条线段被它覆盖. 思路:由于插入的线段长度是递增的,所以第i次 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目

    项目介绍 此个人博客项目底层基于 ABP Framework (不完全依赖)搭建项目 和免费开源跨平台的 .NET Core 3.1 开发,可作为 .NET Core 入门项目进行学习,支持各种主流数 ...

  9. ES6,ES7,ES8 常用特性总结

    一. ES6(ES2015) 1. 变量 let 和常量 const var 的问题 可以重复声明,没有报错和警告 无法限制修改 没有块级作用域, { } let 和 const 不能重复声明 都是块 ...

  10. 5.6 Go 常用函数

    5.6 Go 常用函数 最正确的学习模块姿势: https://golang.org/pkg/ //golang官网 程序开发常用函数 strings处理字符串相关 统计字符串长度,按字节 len(s ...