过程记录,持续更新...
字符串处理
1.使用printf,submatch,str2nr进行字符串处理
2.字符串替换(n1至n2行)
:n1,n2 s/old/new/g
3.关键字所在行替换
sed '/keyword/s/old/new/' infile > outfile
(删除关键字及后续n行: sed '/keyword/,nd' infile > outfile)
4.格式输出
指定分隔符输出某一列 awk -F 'separator' '{print $n}' infile
5.捕获与替换
如:把某个sv文件中 $display替换为 `uvm_info
:%s/$display("\(.*\)").*;/`uvm info(get_type_name(), "\1", UVM_NONE)/g
文件操作
1.在当前文本中读入其他文本
:read xxx
Linux-vim(在命令行模式下读取另外一个文件指定行内容到当前文本光标处)_「已注销」的博客-CSDN博客_vi读取另外文件内容
2.写出当前文本中的指定内容
:w 'a, 'b xxx (mark当前操作文本内的内容 ma/mb/mx/m..)
3.打开光标下文件名对应的文件
gf
.vimrc一些配置
1.绑定空格, 进行折叠和展开 /*{{{*/, /*}}}*/块
nnoremap<space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
2.进入到当前文件所在的目录
map<F6> :execute "cd" expand("%:h")<CR>
3.保存文件时,自动删除末尾空格
autocmd BufWritePre * :%s/\s\+$//e
4. NERDTree
"autocmd vimenter * NERDTree
let g:NERDTreeShowLineNumbers=1
let NERDTreeIgnore = ['\.swp', '\.swo']
map<C-L> :NERDTree<CR>
5. 数据类型转换
function! HexToDec()
%s/\v(..)/\=printf('%08d', str2nr(submatch(1), 16))/g
endfunction
"%s/\([0-9a-fA-F]\)/\=printf("%b", str2nr(submatch(0), 16))/g
function! HexToBin()
"%s/\([0-9a-fA-F]\+\)/\=str2nr(submatch(0), 16) | printf("%b", .)/g
%s/\([0-9a-fA-F][0-9a-fA-F]\)/\=printf("%b", str2nr(submatch(0), 16))/g
endfunction
6. tags
:set tags+=/path/to/project/subdirectory1/tags
:set tags+=/path/to/project/subdirectory2/tags