открыть все сгибы в project.vim по умолчанию - PullRequest
1 голос
/ 06 января 2011

При первом открытии окна проекта в vim все сгибы закрываются. Я нахожу это очень раздражающим. Есть ли способ открыть их все по умолчанию? Я прочитал всю документацию для project.vim, но не смог найти настройки для этого.

Ответы [ 3 ]

3 голосов
/ 13 сентября 2012

Поместите это в ваш .vimrc, чтобы все сгибы открывались при открытии файла:

set foldlevel=99

Это приведет к закрытию всех фолдов 99-го уровня, и я надеюсь, что это не один из них. Если у вас есть более 99 уровней сгибов, у вас есть 99 проблем шутка.

3 голосов
/ 06 января 2011

Как насчет autocmd?

Предполагая, что вы используете имя файла проектов по умолчанию, вы можете сделать что-то вроде этого:

autocmd BufEnter .vimprojects silent! %foldopen!

Если вы хотите сохранить позицию курсора, вы можете либо пометить метку, либо использовать переменную:

autocmd BufEnter .vimprojects let PreFoldPosition = getpos('.') | silent! %foldopen! | call setpos('.', PreFoldPosition)

1009 ** * Редактировать 1010 ** * 1011

Кажется, что project.vim создает буфер, а затем добавляет содержимое. В результате вышеупомянутые autocmds работают только во второй и последующие периоды открытия окна проекта. Единственный известный мне способ обойти это - отредактировать project.vim и поместить silent! %foldopen! в конце функции s:Project(filename). Возможно, стоит отправить электронное письмо автору и спросить, может ли он добавить способ сделать это (с опцией) в стандартную поставку.

0 голосов
/ 08 сентября 2011

Я знаю, что этот вопрос довольно старый, но другое решение состоит в том, чтобы создать функцию в вашем .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' и завершить ввод имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...