方便编辑:
function! Test_Dir_Exist()
let dir = expand('%:p:h')
if !isdirectory(dir)
call mkdir(dir, 'p')
echom 'Created non-existing directory: '.dir
endif
endfunction
augroup Utility
autocmd BufWritePre * call Test_Dir_Exist()
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
augroup END
很简单的函数,当保存的文件处于未创建的目录,自动创建之(默认是错误)
第二个自动命令是自动跳转到最后编辑处,这里只是简单地使用了位置标记"的作用
特殊标记
标记 | 含义 |
---|---|
[ | 上一次改变或抽取的文本的第一个字符 |
] | 上一次改变或抽取的文本的最后一个字符 |
< | 上次可视区域的第一个字符 |
> | 上次可视区域的最后一个字符 |
` | 上次跳转的位置 |
" | 上次离开本缓冲区的光标位置 |
^ | 上次退出插入模式的光标位置 |
这些标记可以组合有趣的映射比如:
|
|
转大写
|
|
通常也就是写宏的时候需要用到,如果只需要大小写切换用~替换U。