首次在vim中打开项目窗口时,所有折叠都将关闭。我觉得这很烦人。是否有任何方法可以将它们全部打开?我已经阅读了project.vim的所有文档,但找不到此设置。
答案 0 :(得分:3)
autocmd怎么样?
假设您使用默认项目文件名,您可以执行以下操作:
autocmd BufEnter .vimprojects silent! %foldopen!
如果你想保持光标位置,你可以破坏标记或使用变量:
autocmd BufEnter .vimprojects let PreFoldPosition = getpos('.') | silent! %foldopen! | call setpos('.', PreFoldPosition)
修改
似乎project.vim创建缓冲区然后添加内容。因此,上面的autocmds仅在项目窗口打开的第二次和随后的时间工作。我知道绕过此方法的唯一方法是编辑project.vim
并将silent! %foldopen!
放在函数s:Project(filename)
的末尾附近。可能值得向作者发送一封电子邮件,询问他是否可以在标准发行版中添加一种方法(带选项)。
答案 1 :(得分:3)
将此文件放入.vimrc中,以便在打开文件时将所有折叠设置为打开:
set foldlevel=99
这将导致所有99级折叠被关闭,我希望这些折叠都不是。如果你有超过99级的折叠,你有99个问题的笑话。
答案 2 :(得分:0)
我知道这个问题有点陈旧,但另一个解决方案是在.bashrc(或类似代码)中创建一个函数来执行以下操作:
vim +"Project $1" +'silent! %foldopen!'
例如,在我的.bashrc中,我有以下内容:
export PROJECT_DIR="$HOME/devel/projects"
project()
{
if test -z "$1"
then
echo "Usage: project <project name>"
else
if [ ! -e "$PROJECT_DIR/$1" ]
then
echo "Project not found. Available projects:"
find $PROJECT_DIR/* | xargs -l basename
else
vim +"Project $PROJECT_DIR/$1" +'silent! %foldopen!'
fi
fi
}
_project()
{
local cur
local PROJECTS=`find $PROJECT_DIR/projects/* | xargs -l basename`
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $( compgen -W "$PROJECTS" -- $cur ) )
}
complete -F _project project
这使我可以简单地发出'project'命令并选项卡 - 完成名称。