- ·上一篇文章:Tableau 面试问题及答案
- ·下一篇文章:Vim 关于
vi/vim命令大全
orum\(\_.\)*pent 多行匹配" /fred\_s*joe/i 中间可以有任何空白,包括换行符\n" /fred\|joe 匹配FRED或JOE" /\<fred\>/i 匹配fred,fred必须是一个独立的单词,而不是子串" /\<\d\d\d\d\> 匹配4个数字 \<\d\{4}\>" 列,替换所有在第三列中的str1" :%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2:" 交换第一列和最后一列 (共4列)" :%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1:" 全局(global)显示命令,就是用 :g+正则表达式" 译释: :g/{pattern}/{cmd} 就是全局找到匹配的,然后对这些行执行命令{cmd}" :g/\<fred\>/ 显示所有能够为单词fred所匹配的行" :g/<pattern>/z#.5 显示内容,还有行号" :g/<pattern>/z#.5|echo '==========' 漂亮的显示"/*---------------------------------------*\" 多文档操作 (基础)"/*---------------------------------------*\" 用 :ls! 可以显示出当前所有的buffer" :bn 跳转到下一个buffer" :bp 跳转到上一个buffer" :wn 存盘当前文件并跳转到下一个" :wp 存盘当前文件并跳转到上一个" :bd 把这个文件从buffer列表中做掉" :b 3 跳到第3个buffer" :b main 跳到一个名字中包含main的buffer"/*---------------------------------------*\" 列复制"/*---------------------------------------*\" 译注:@#%&^#*^%#$!" :%s= [^ ]\+$=&&= : 复制最后一列" :%s= \f\+$=&&= : 一样的功能" :%s= \S\+$=&& : ft,还是一样" 反向引用,或称记忆" :s/\(.*\):\(.*\)/\2 : \1/ : 颠倒用:分割的两个字段" :%s/^\(.*\)\n\1/\1$/ : 删除重复行" 非贪婪匹配,\{-}" :%s/^.\{-}pdf/new.pdf/ : 只是删除第一个pdf" 跨越可能的多行" :%s/<!--\_.\{-}-->// : 又是删除多行注释(咦?为什么要说「又」呢?)" :help /\{-} : 看看关于 非贪婪数量符 的帮助" :s/fred/<c-r>a/g : 替换fred成register a中的内容,呵呵" 写在一行里的复杂命令" :%s/\f\+\.gif\>/\r&\r/g | v/\.gif$/d | %s/gif/jpg/" 译注:就是用 | 管道啦"/*---------------------------------------*\" 大小写转换"/*---------------------------------------*\" g~~ : 行翻转" vEU : 字大写(广义字)" vE~ : 字翻转(广义字)" ~ 将光标下的字母改变大小写" 3~ 将下3个字母改变其大小写" g~w 字翻转" U 将可视模式下的字母全改成大写字母" gUU 将当前行的字母改成大写" u 将可视模式下的字母全改成小写" guu 将当前行的字母全改成小写" gUw 将光标下的单词改成大写。" guw 将光标下的单词改成小写。" 文件浏览" :Ex : 开启目录浏览器,注意首字母E是大写的" :Sex : 在一个分割的窗口中开启目录浏览器" :ls : 显示当前buffer的情况" :cd .. : 进入父目录" :pwd" :args : 显示目前打开的文件" :lcd %:p:h : 更改到当前文件所在的目录" 译释:lcd是紧紧改变当前窗口的工作路径,% 是代表当前文件的文件名," 加上 :p扩展成全名(就是带了路径),加上 :h析取出路径
vi/vim命令大全