VIM用法

VIM编辑器的用法,包含基础用法和高级用法。

VIM的配置文件是用户家目录下.vimrc, 修改该文件加入inoremap jj , 表示映射ESC键到两次j键,可以提高操作效率

思维导图

在这里插入图片描述

Normal-mode

用于浏览文件,也包含复制,粘贴,删除等操作。这种模式下,键盘按键会当做功能键处理,不会真正的键入这些字符

漫游

h 向左

j 向下

k 向上

l 向右

0 跳到行首

^ 跳到行首第一个非空字符

$ 跳到行尾

gg 跳到文件的第一行的行首

G 快速到文件的最后一行的行尾

% 匹配括号移动,包括(,{,[

|# 匹配光标当前所在的单词,移动光标到下一个单词处,是下一个,#是上一个

ctrl+f 查看下一页内容

ctrl+b 查看上一页内容

100G 跳转到第一百行的行首

复制

yy 复制光标所在整行

100yy 复制光标坐在行及以下共100行

yw 复制光标开始的第一个单词

y$ 复制光标到行尾

yG 复制光标所在行到文本的结束

yH 复制文本开始到光标所在行的文本

fa 移动光标到本行下一个a的字符处

Fa 反前移动光标到字符a处

nfa 移动光标到下第n个字符a处

nFa 向前移动光标到第n个字符a处

ta 移动光标到a字符的前一个字符

nta 移动光标到第n个a字符前一个字符

Ta 向前移动光标到a字符出现的后一个字符

nTa 向前移动到第n个a字符出现后的一个字符

yfB 复制光标到第一个大写B中间的内容

y2fB 复制光标到第二个大写B中间的内容

剪切

x 向后剪切一个字符,如果是行尾则向前剪切

3x 剪切三个

xp 非行尾交换两个字符,如果是bs编程sb

删除

dd 删除光标所在行

200dd 删除光标所在行及以下共100行

dw 删除一个单词

dnw 删除n个单词

df" 删除到出现第一个双引号的位置

dnf" 删除到出现第n个双引号的位置

d$ 删除光标到本行的结尾

d^ 删除光标到本行的开头

dH 删除文本开始到光标所在行的文本

dG 删除光标所在行到文本的结束

粘贴

p 粘贴复制或剪切的内容

3p 将复制或剪切的内容粘贴三次

P 光标前开始粘贴

3P 光标前开始粘贴3次

窗口命令

ctrl+w s 水平分割窗口

ctrl+w w 切换窗口

ctrl+w q 关闭当前分屏,如果是最后一个分屏则退出VIM

ctrl+w c 关闭当前分屏

ctrl+w v 垂直分割窗口

ctrl+j|k 可以用于切换上下窗口

ctrl+h|l 可以用于切换s水平窗口

ctrl+w H|L 可以用于左右移动当前分屏

ctrl+w J|K 可以上下移动当前分屏

文件保存

ZZ 大写的字母ZZ,保存当前文件

ZQ 大写的字母ZQ, 放弃对文件的修改并退出

关键字和路径补全

ctrl+x -> ctrl+n 透过目前正在编辑的文件内容作为关键库补全

ctrl+n 也可以快速补全,没有提示

ctrl+x -> ctrl+f 以当前目录内的档案作为关键字补全路径文件

ctrl+x -> ctrl+o 以文件名作为语法补充,以wim内建的关键字予以补全

撤销操作和恢复

u 撤销刚才的操作

ctrl+r 恢复撤销操作

删除字符和替换

x 删除光标当前所在的字符

r 替换掉光标当前所在的字符

R 替换掉从光标开始以后的所有字符,除非退出

大小写转换

~ 将光标下的字母改变大小写

3~ 将光标位置开始的3个字母改变其大小写

g~~ 改变当前行字母的大小写

gUU 将当前行的字母改成大写

guu 将当前行的字母改成小写

3gUU 将从光标所在行下面共三行字母改成大写

gUw 将光标下的单词改成大写

guw 将光标下的单词改成小写

宏录制以及播放

录制宏,在普通模式按下q键(宏录制是以q键启动的),再按下字母w(字母随意),表示该宏注册为w, 然后完成操作后再次按下q表示完成录制操作。

宏播放, 在正常模式下,按下@w执行宏录制的所有操作。@@是对上次宏的重复操作。n@w, 就会执行n次w宏。

Command-mode

在正常模式下按下":"(冒号)键或者/(撇号),进入命令模式,可以输入和执行一些VIM或者插件命令,这些指令包含设置环境,文件操作,调用某个功能

:%s/$/sth/ 行尾追加sth

:%s/^M//g 替换掉dos换行符,^M使用Ctrl+v+Enter即可输入

:g/^/s*$/d 删除空行以及只有空格的行

:n1,n2 s/str1/str2/gic 替换行号n1到n2之间的字符串str1为str2, g关键字表示一行出现多个,则都替换,如果没有g,则只替换第一个,i关键字表示大小写不敏感,即忽略大小写,大写的字母I表示大小写敏感,这也是默认的。c关键字表示替换前确认。每个关键词均可单独使用

:%s/#.*//g 删除#之后的字符

/hansen 查找字符串hansen, n查找下一个匹配, N查找上一个匹配,2n查找下面第二个匹配

:help set 查看set命令的帮助信息

:set 显示与系统预设值不同的设定参数,就是自己修改的那些设定

:syntax on|off 打开和关闭程序的语法高亮

:set bg=dark|light 设置不同的背景色

文件操作

:w 将编辑的内容写入文件中

:w! 将文件在只读状态时强制写入,实际写入还得看文档权限

:q 离开vim

:qa! 退出所有文件,对所有文件不做修改保存

:x 退出文件并保存对文件的修改

:e fn 打开另外一个文件

:n 跳转到下一个文件

:N 跳转到上一个文件

:bn 跳转到下一个文件

:bp 跳转到上一个文件

:ls 列出打开的所有文件

:b2 显示第二个文件

:q! 将至退出修改过的文件,丢掉所有修改

:wq 存储后退出

:w fn 将文件另存为文件名fn

:r fn 将fn文件读入并追加到目前编辑文件光标后

:n1, n2 w fn 将n1到n2的内容存储成fn文件

:n1,n2 d 将n1到n2行的所有内容删除,d是删除关键字

:! command 显示离开编辑器并执行command命令

:r! command 执行command命令,并将执行结果追加到光标后

:sp fn1 上下分屏打开另外一个文件

:vsp fn1 左右分屏打开另外一个文件

:set nu 开启显示行号

:set hlsearch 搜索到的关键字高亮

:set autoindent 开启自动缩进

:set backup 是否自动存储档案,当开启后,每次打开文件编辑的时候,原始文件会命名为fn~

:set ruler 打开后关闭右下角的状态栏说明

:set ic 在关键词搜索的时候区分大小写

:set showmode 打开和关闭模式切换后的状态,比如进入insert mode的时候,左下角会显示--INSERT--

:set backspace=(012) 进入编辑模式,可以利用backspace来按键来删除任意字符,但是某些distribution则不容许这样。此时可以通过设置backspace来实现这个功能,=2,就是删除任何字符,=0|1时,仅可以删除输入的字符,而无法删除原来文本存在的字符

tabe fn 使用VIM插件minibuffer新建标签页功能,在一个新的标签页编辑文件fn,

gt 切换到下一个标签页

gT 切换到上一个标签页

:tabr 切换到第一个标签页

:tabl 切换到最后一个标签页

:tabm [N] 把当前tab移动到第N个tab之后

:map ^M I# 设置快捷键Ctrl+m在光标处所在行的行首插入#(#代表注释),然后在退出编辑状态。map是关键字,后面的是key和value。key对应的是^M,这个key是快捷键Ctrl+v+M输入的,代表快捷键Ctrl+M。Value对应的是I#, 表示依次执行这些快捷键。I表示切换光标至行首并进入编辑状态,#表示输入#,表示退出编辑状态。

:ab email hualong1009@foxmail.com ab是关键词,该命令执行后,然后切换到编辑模式,输入email后,会把email自动替换为邮件地址hualong1009@foxmail.com。适用于频繁输入同样的长字符串场景

Insert-mode

在正常模式按下一些按键(如i, a等)进入插入模式

i 从当前光标的位置进入插入模式

I 进入插入模式,并将光标至于行首

a 追加模式,置光标于当前光标之后

A 追加模式,置光标于行末

o 在当前行之下新加一行,并进入插入模式

O 在当前行之前新加一行,并进入插入模式

ESC 退出插入模式

Visual-mode

可视化模式

按下v,V,+V, 可以进入可视化模式,操作像是拿鼠标选择一样,操作会很方便。

继续按下CTRL+v会退出可视化模式

使用方向键或者h,j,k,l进行漫游,选中相应的内容,也可以使用gg和G直接到文件首或尾

ctrl+v 块模式,块操作,和UE的块操作一样

o 跳转光标到选中块的另一个端点

U 将选中块中的内容转化为大写

O 跳转光标到块的另一个端点

aw 选中一个字

ab 选中{}括号中的所有内容,包含括号本身

aB 选中{}括号中的所有内容

ib 选中括号中的内容,不包含括号

iB 选中括号中的所有内容

va 当光标在"",'',(),{},[]当中时候,va表示选中""内所有的内容包含双引号

vi 当光标在"",'',(),{},[]当中时候,va表示选中""内所有的内容不包含双引号

> 块右移

< 块左移

y 复制块

d 删除块

~ 切换块中内容的大小写

在该模式下选择区域后直接输入:, VIM会自动补全为:' 这个是可视模式下选区的替换操作,表示操作范围,类似与制定n1, n2

vim编辑文本

vim file 编辑一个文件

vim fn1 fn2 ... 同时编辑多个文件,默认只显示第一个文件,也就是file1

vim -on fn1 fn2 ... 上下分屏同时编辑多个文件

vim -On fn1 fn2 ... 左右分屏打开多个文件

推荐关注博主公众号,获取最新的文章

a或b search vim_VIM超详细用法以及思维导图相关推荐

  1. 超详细的集合思维导图

    超详细的集合思维导图 本人自学期间做的笔记,感觉比较适合新手

  2. 计算机组成(超详细)+附带思维导图

    计算机的组成 运算器,进行运算,算术运算和逻辑运算 控制器,控制指令的执行 存储器,包括内存和外存,外存有硬盘,u盘等形式 输入设备,鼠标,键盘等 输出设备,比如显示器 运算器和控制器组成中央处理单元 ...

  3. 移动web知识总结(超详细)附带思维导图

    移动web简介 什么是移动web 用于展示在移动设备上的网页(web),称之为移动端页面. 移动设备泛指手机.平板等设备. 如何调试移动web页面 一些浏览器为前端开发者提供了真机调试模拟环境.例如: ...

  4. Nmap用法的思维导图

    Nmap提供了丰富的命令行选项(100多个选项),所以Nmap的命令行用法既可以简单到直接输入nmap targetip,也可以复杂到添加几十个选项对扫描过程进行性能优化.对Nmap的各类命令行选项有 ...

  5. 超好用的思维导图网站

    前言 今天给大家介绍一款超好用的做笔记网站 processon 由于本人在学习过程中是跟着B站上的狂神老师一点点学的,因此也养成了做笔记和写思维导图的习惯.这个网站也是狂神老师讲课中一直用的一款软件, ...

  6. [C++ 系列] 90. 超详解C++思维导图

    这段时间针对 C++ 的学习到了一个收尾的阶段.目前所涉及到了 C++ 基础语法.大小知识点的学习.当然语言学习绝对离不开实战项目的练手,网络优质资源以及各类经典丛书也是 C++ 学习的巨大宝库.在此 ...

  7. 设计模式(Design Pattern)详细整理(含思维导图)

    设计模式(Design Pattern) 设计模式(Design pattern)代表了最佳的实践,是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人员经过相当长的一 ...

  8. 数据结构——超全的数据结构思维导图

    作者:王乐乐0727 来源:CSDN 原文:https://blog.csdn.net/wanglele1 版权声明:本文为博主原创文章,转载请附上博文链接!

  9. 最详细的计算机网络思维导图 谢希仁(第七版)——第一章

    学习计算机网络时自己画的思维导图 第一章 详情进入主页,获取其他章节的思维导图. 附网盘文件,有需要自取 链接:https://pan.baidu.com/s/1kFtaPl9D9HGl0MC-Wlv ...

最新文章

  1. URL编码转义,冒号和/不转,否则导致http链接失效
  2. 今天是第一次开博客,for--futurechild!!!
  3. EXCEL保存提示“隐私问题警告:此文档中包含宏……”解决办法
  4. 树莓派文件服务器nas,树莓派搭建NAS服务器
  5. python处理excel-python处理Excel的简单示例
  6. 大话设计模式-备忘录模式
  7. Java实现获取HDFS子目录数量_Java实现读取HDFS目录
  8. WIFI无线路由器的五种工作模式
  9. WPF 文字换行TextWrapping 显示不全用省略号TextTrimming 显示不全弹提示内容ToolTip
  10. Java_8排序(冒泡排序和选择排序)
  11. SQL项目实战练习:淘宝用户行为数据分析实战
  12. php trum,口碑曝光TrumoAurora评测如何?怎么样呢?使用报告曝光评测
  13. Latex——数学符号大全
  14. 尼龙毛柱分离T细胞法操作指南
  15. 环境变量的用户变量与系统变量的区别
  16. 奥比中光 Astra pro 深度相机在ROS Melodic的调试
  17. 视频教程-零基础学C#编程—C#从小白到大咖-C#
  18. jQuery Pagination分页插件
  19. POJnbsp;3660nbsp;nbsp;Cownbsp;Contest(关系闭包…
  20. 【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践

热门文章

  1. 代表作须1/3国内论文,版面费超2万须严审,黑名单论文不予报销……破除“唯论文”又有一省跟进!...
  2. 2021-2027全球及中国健身单车行业研究及十四五规划分析报告
  3. 必须理解的三大软件原则(2):KISS
  4. html5 css3 配色表
  5. mysql判断是否连通c_C/C++连接查询MYSQL
  6. 通配符中的字符*与正则表达式中字符*的区别
  7. 美术加:画画不一定要临摹,但不临摹一定学不好画画~
  8. Codeforces Round #315-Codeforces Round #315(贝尔数)
  9. 【Oracle】Oracle 删除一条数据,同时删除多表中关联数据
  10. windows程序设计——飞机大战笔记(单文档文件登陆界面)