vim新手。想在vimrc添加两个自定义功能:
一、打开一个文件后,自动搜索同目录下是否有会话文件(后缀.ses),若有则加载该文件;
二、保存一个文件时,自动搜索同目录下是否有会话文件(后缀.ses),若有则更新该文件。
代码如下:
autocmd BufReadPost *
\ let s:session_file = expand("%") . ".ses" |
\ if filereadable(s:session_file) == 1 |
\ source s:session_file |
\ endif
autocmd BufWritePost *
\ if filewritable(s:session_file) == 1 |
\ mksession! s:session_file |
\ else |
\ echo "please run mksession! " |
\ enif
运行后发现source和mksession两个命令根本不会把s:session_flle变量替换为我希望的文件。
请各位大侠指点一下。谢谢!
改代码『已经解决』
-
- 帖子: 77
- 注册时间: 2011-04-23 5:28
- 来自: 汕尾遮浪
-
- 帖子: 77
- 注册时间: 2011-04-23 5:28
- 来自: 汕尾遮浪
-
- 帖子: 77
- 注册时间: 2011-04-23 5:28
- 来自: 汕尾遮浪
Re: 改代码
我始终觉得问题不在于这个变量
——因为我最初写的时候,这个变量名用session_file,问题那时已经存在。
因为担心这个变量会影响全局,才前缀了s:。
如果在\ if filereadable(s:session_file) == 1 |和\ source s:session_file |之间加入一行:
echo s:session_file . "can be shown."
这个s:session_file是可以被替换为具体的ses文件名的。
所以,我觉得问题出在source和mksession这两个命令。
——因为我最初写的时候,这个变量名用session_file,问题那时已经存在。
因为担心这个变量会影响全局,才前缀了s:。
如果在\ if filereadable(s:session_file) == 1 |和\ source s:session_file |之间加入一行:
echo s:session_file . "can be shown."
这个s:session_file是可以被替换为具体的ses文件名的。
所以,我觉得问题出在source和mksession这两个命令。