问题描述
例如文档1的内容是:
this is doc A
the following is contents
...
要保存为“this is doc A.txt”;
文档2的内容是:
that is B
some words more
...
要保存为“that is B.txt”。
文档的数量很多,无法对每一文档手工保存,希望有一款文本编辑器能用脚本(或者宏之类的)实现该功能。
解决方案
在_vimrc文件中加上如下内容:
function Blog_Save()
" 删除空行,包括全是空格的行
g/^\s*\(/d
" 将文件第一行内容保存在变量line中
let line = getline(1)
" 去掉其中的非法字符,如\等
let line = substitute(line, '[:/\\]', '-', 'g')
let line = substitute(line, '^\s\+', '', 'g')
let line = substitute(line, '\s\+\)', '', 'g')
let line = substitute(line, ' ', '\ ', 'g')
let line = substitute(line, '\r', '', 'g')
" 执行保存文件命令,其中点号是连接符,类似于PHP中的用法
exe 'sav '.line.'.txt'
endfunction
" 定义一个【用户自定义命令】
command BlogSav call Blog_Save()
" 键映射
:map