IC 脚本之VIM 记录

  1. 对于代码中空格与tab相互转换的可通过如下实现:
bash 复制代码
set tabstop = 4 
set expandtab   
%retab !   以上三行命令即可实现将代码中每四个空格用一个tab来缩进。

set tabstop =4 
set noexpandtab 
%retab !   以上三行命令即可实现将代码中的每个tab用四个空格来实现


tab相关参数
set shiftwidth=4 #换行自动变成空格
set autoindent   #设置自动缩进,当你在第一行敲击 tab + conten, 当回车第二行开始编辑器默认增加一个tab

2 使用vim 批处理文本

bash 复制代码
setp1 : 创建一个包含所需执行vim 命令 集合的文本 test.scr
step2 : vim -es -S test.scr file1 file2  ; 这样便可以对test.scr中的命令对file1 file2 分别执行。
note: test.scr最后一行添加  :wq   保证运行结束后自动保持退出。 

3.vim 的autocmd命令

bash 复制代码
autocmd FileType makefile,tck,python  set noexpandtab # 对特定文件不展开tab
autocmd BufWritePre makefile :%s/\s*$//g<CR>    # 默认去除makefile最后空格。
  1. 自定义快捷键
bash 复制代码
nmap jj <Esc>
inmap jj <Esc>
map <C-s> <Esc>:w<CR> # ctrl-s  save
imap <C-s> <Esc>:w<CR> # ctrl-s  save
imap <C-S>  <Esc>:w<CR> # ctrl-s  save

map <C-q> <Esc>:wq<CR>         # 退出
map <S-Tab> <Esc>:<<CR>        # 绘图tab
mpa <Tab>   <Esc>:s/^/\t/g<CR> # 增加tab

map <C-n> <Esc>:tabnew ./ <CR> # 新建
map <C-a> <Esc>ggvG    # 全选
map <C-m> <Esc>:et mouse=c<CR>
map <C-f> <Esc>/
map <C-y> <Esc>:tabf ./<CR> 

map <C-f> <Esc>/      # 寻找
map <C-r> <Esc>:%s/   #全局替换  
vmap <C-r> :s/        #部分替换
  1. vim 正则

    vim 元字符
    \ 元字符转义
    ^ 字符串开始位置
    $ 字符串结束位置

    • 0~∞ 次
      . 任意一个字符
      {m,n} 次数匹配
      ( ) 分组
      | 或
      ? 0~1
      + 1~∞

    高阶用法:
    < >单词左边界以及有边界
    {-1,} 非贪婪匹配

  2. 命令

bash 复制代码
获取匹配字段的个数:
%s/pattern//gn  
相关推荐
H.2013 分钟前
centos7执行yum操作时报错Could not retrieve mirrorlist http://mirrorlist.centos.org解决
linux·centos
9毫米的幻想1 小时前
【Linux系统】—— 编译器 gcc/g++ 的使用
linux·运维·服务器·c语言·c++
helloliyh1 小时前
Windows和Linux系统安装东方通
linux·运维·windows
van叶~3 小时前
Linux探秘坊-------4.进度条小程序
linux·运维·小程序
秋风&萧瑟3 小时前
【数据结构】顺序队列与链式队列
linux·数据结构·windows
我科绝伦(Huanhuan Zhou)3 小时前
Linux 系统服务开机自启动指导手册
java·linux·服务器
hunter2062065 小时前
ubuntu终端当一段时间内没有程序运行时,自动关闭终端。
linux·chrome·ubuntu
代码讲故事7 小时前
从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题
linux·运维·服务器·windows·远程连接·远程桌面·xrdp
qq_243050799 小时前
irpas:互联网路由协议攻击套件!全参数详细教程!Kali Linux入门教程!黑客渗透测试!
linux·网络·web安全·网络安全·黑客·渗透测试·系统安全
IT北辰9 小时前
Linux下 date时间应该与系统的 RTC(硬件时钟)同步
linux·运维·实时音视频