博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vim命令
阅读量:5125 次
发布时间:2019-06-13

本文共 2998 字,大约阅读时间需要 9 分钟。

都快忘得差不多了,记记一些命令,遏制老年痴呆的趋势啊。

命令模式下的一些操作

t+字符 跳到该行当前位置后面最近一个‘字符’处,t之前可加数字,代表连续多少个字符。大写T则反方向f+字符    跳到该行当前位置后面最近一个‘字符’的前一个位置,功能同上。:数字 跳到第“数字”行gg  跳到文件第一行,前面加数字可以跳到指定行(G也行)G   跳到文件最后一行*   停留在一个单词上,搜索下一个此单词#   停留在一个单词上,搜索上一个此单词,与*相反g_  跳到行尾非空格处^   功能与g_相反0   数字0,跳到行首$   跳到行末H   将光标跳到当前屏幕的起始行起始处,前面加数字可跳到相对第几行M   将光标跳到当前屏幕的中间行起始处,同上L   将光标跳到的当前屏幕的末行起始处,同上w   右移光标到下一个字的开头,前面可以加数字e   右移光标到下一个字的末尾ZZ  直接保存修改并退到终端A   切换到插入模式,并将光标移到行末yw  复制一个单词dw  删除当前的单词,中间可以夹带数字d$  从光标处删除到行末,包括光标处u   按一次恢复1次U   恢复该行的原始状态ctrl+r  撤销所做的恢复u或者Ur   先按r,再按字符可以将光标位置改为所按字符R   进入替换模式,功能同r,只是不用每次都按r,输错还能按backspacecw  功能同dw,但是直接进入插入模式,且不会删除掉单词后面的空格,比较好用ce  功能同cw。c和d的功能一样,只是c会立刻进入插入模式/串  输入/,再输入字符串,可以向下查找,按n则跳到下一个。此时还可以:set ic忽略大小写,禁用忽略大小写:set noic?   输入?,再输入字符串,可以向上查找,按n则跳到下一个。与/相反。ctrl+o  光标跳到你之前跳来的地方,可连续按ctrl+i  和o相反,当按下ctrl+o时可能需要用到这个ctrl+g  显示当前光标在文件中的位置%   括号匹配。当光标在某个括号上时,光标跳到匹配的括号处。:!命令    在vim编辑器内可以临时运行一些命令,命令显示完就回vim:w name 另存为。以路径及名字name保存当前文件,默认为当前目录。v   按v进入可视模式,移动光标选中一片区域,按d就删除这片区域,按w name也可以进行另存ctrl+v  进入可视块模式,可以选取一块区域,不用每行都选,是v的加强版:r file 在当前光标位置插入文件file的内容,:r其实表示要插入东西,可以:r !ls将结果给插入:e  重新读取当前文件q+c    c可以是任意的字符/字母?启用记录模式,记录期间所有的操作(尽量简单吧),并名称保存为c。退出按q。@+c    在记录模式记录的名称c,只要按下@c就可以重播了,用于批量处理。可以直接按@一直播放。

插入模式下还有一些淫技可以琢磨

ctrl+y  插入光标上同列的字符ctrl+p  自动补全

切换到插入模式的几种方式

i 在光标左侧插入正文a 在光标右侧插入正文o 在光标所在行的下一行增添新行O 在光标所在行的上一行增添新行I 在光标所在行的开头插入A 在光标所在行的末尾插入

控制屏幕滚动的一些操作

ctrl+f  相当于page downctrl+b  相当于page upctrl+a  把光标下的整个数字+1Ctrl + e 向下滚动一行Ctrl + y 向上滚动一行Ctrl + d 向下滚动半屏Ctrl + u 向上滚动半屏Ctrl + f 向下滚动一屏Ctrl + b 向上滚动一屏

很简单的文本替换

:s/old/new  只替换本行中的第一处:s/old/new/g    只将本行匹配处进行替换:%s/old/new/g   全文件进行替换:%s/old/new/gc  全文件进行替换,但是替换前进行提示是否替换:2,8s/old/new/g 仅将2~8行进行替换。尾部的g表示global,i表示ignore大小写,c表示每次都询问

奇怪的格式:

:%!xxd  将文本变成16进制形式显示,就不告诉你怎么转回来~

单个屏不够看了,分屏操作:

vim -on file1 file2o为小写字母,表示上下分屏,n是分屏的个数vim -On file1 file2O为大写字母,表示左右分屏,n是分屏的个数:only   关闭当前文件的其他分屏ctrl + w + h移动到光标左边的窗口(h可替换为jkl等)ctrl + w + q关闭当前分屏窗口(q可替换为c),功能同:qctrl + w +v 对当前屏幕进行分屏

简单的正则表达式

(入门看这个就行了   http://www.jianshu.com/p/a66fc32bb879)(这是简单的测试站点 http://www.regex.alf.nu/3).   匹配换行符以外的任意字符^   匹配字符串的开始位置$   匹配字符串的结束位置*   匹配前面的子表达式零次或多次,等价于{0,}+   匹配前面的子表达式一次或多次,等价于{1,}?   匹配前面的子表达式零次或一次,等价于{0,1}\   转义符,将特殊字符进行转义[]  [abc]字符集合,匹配所包含的任意一个字符[^abc]负值字符集合,匹配未包含的任意字符[a-z] 字符范围,匹配指定范围内的任意字符()  两个字符一起使用,用于创建一个用于匹配的子串,也叫分组{}  {n}匹配确定的n次{n,}至少匹配n次,等价于"*"{n,m}最少匹配n次且最多匹配m次(其中n<=m)$   匹配行尾^   匹配行首\<  匹配单词词首\>  匹配单词词尾\b  单词边界,同\<\B  非单词边界,同 \>\d  数字字符,同 [0-9]\D  非数字字符,同[^0-9]\s  空白字符,同 [ \t\n\r\f\v]\S  非空白字符,同 [^\t\n\r\f\v]\w  字母数字字符,同 [a-zA-Z0-9_]\W  非字母数字字符,同 [^a-zA-Z0-9_]\t  Tab,同0x09\r  回车符,同0x0D\n  换行符,同0x0A\f  换页符\v  垂直制表符,同ox0b\x  十六进制,例如“x41”匹配“A”\u  Unicode字符。例如,u00A9匹配版权符号

奇淫技巧

1、批量插入。用途举例:markdown的表格常需要在同一列插入|符号。

esc       切到命令模式ctrl+v    选中多行(无需从行首到行尾)shift+a   切换到插入模式,用shift+i也行...       敲很多的字符进去esc       见证奇迹

2、大小写转换

esc       切到命令模式v           选中需要转换的内容~           大小写反转

编码问题

参考以下站点一般可解决。

http://edyfox.codecarver.org/html/vim_fileencodings_detection.html
http://www.vimer.cn/2009/10/87.html

转载于:https://www.cnblogs.com/xcw0754/p/5201221.html

你可能感兴趣的文章
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>