Как включить и использовать код, сворачивающийся в Vim?

Я не думаю, что можно добраться, инициировали расширение истории и возвращают результат из zsh.

Вот подтверждение концепции для использования zpty модуль для взаимодействия с нижним процессом zsh имейте его, разворачивают строки истории и изучают результат (который мог быть должен сообщить об ошибке или выполнить команду). Поместите первоначальную историю, которую Вы хотите перед каждой попыткой расширения в названном файле prior_history.

#!/usr/bin/zsh
setopt extended_glob
zmodload zsh/zpty
zpty -b inferior_zsh 'PS1=%% PS2=\> TERM=dumb strace -eread,write -o zsh.strace zsh -f'
zpty -r inferior_zsh out $'*\r%'
zpty -w inferior_zsh 'stty -echo'
zpty -r inferior_zsh out $'*\r%'
start='mv /Volumes/hdd1/path/to/a/file.foo'
history_string='!#$:r:s/foo/bar/'
for ((i=1; i <= $#history_string; i++)) {
  zpty -w inferior_zsh "fc -R prior_history"
  zpty -r inferior_zsh out $'*\r%'
  zpty -w inferior_zsh "print -r expansion: ${(q)start} ${history_string[1,$i]}"
  zpty -r inferior_zsh out $'*\r[%>]'
  out=${${out#*$'\r\r\n'}%$'\r\n'% ##$'\r\r%'}
  print -r "$i ${(qqqq)out}"
}

52
07.05.2017, 15:33
5 ответов

Нет, вам не нужно вводить команду со страницы вы связались с ~ / .vimrc , вы можете просто ввести их после ввода : в vim , чтобы получить командную строку.

Однако, если вы поместите строки:

set foldmethod=indent   
set foldnestmax=10
set nofoldenable
set foldlevel=2

, как указано в предоставленной вами ссылке, в вашем ~ / .vimrc , вам не придется вводить их каждый раз, когда вы хотите использовать сворачивание. файл. Параметр nofoldenable гарантирует, что при открытии файлы будут «нормальными», то есть не свернутыми.

44
27.01.2020, 19:33

Не обязательно использовать ее систематически: Обычно я вручную выбираю складки по движению или разделу. Например, сгиб абзаца - это zfip, а сгиб следующих 20 строк - это zf20j. Используйте za для переключения и zd для удаления.

Это требует немного больше работы, но позволяет вашему складыванию отразить текущую задачу.

14
27.01.2020, 19:33

В текущем сеансе можно включить складывание , как @Anthon's answer. Но если Вы хотите сделать его постоянным, Вы должны установить как минимум эту строку в .vimrc для работы со сгибанием:

set foldmethod=indent

отступ это своего рода сгибание, Вы можете увидеть больше из :help foldmethod

'foldmethod' 'fdm'      string (default: "manual")
                        local to window
                        {not in Vi}
                        {not available when compiled without the +folding
                        feature}
        The kind of folding used for the current window.  Possible values:
        fold-manual     manual      Folds are created manually.
        fold-indent     indent      Lines with equal indent form a fold.
        fold-expr       expr        'foldexpr' gives the fold level of a line.
        fold-marker     marker      Markers are used to specify folds.
        fold-syntax     syntax      Syntax highlighting items specify folds.
        fold-diff       diff        Fold text that is not changed.

Теперь, каждый раз, когда Вы открываете файл с vim, Вы можете видеть, что код складывается по заданному методу. Затем можно использовать za, zc, zo.

4
27.01.2020, 19:33

Fold by default

Метод сворачивания в Vim по умолчанию - manual, что означает, что складки создаются вручную; в противном случае, нет складки, которую можно закрыть или открыть с помощью za, zo или zc, как вы описали. Но, вы можете создать складку с помощью zf{motion} в режиме Normal или zf в режиме Visual; например. g. zfj создает складку для текущей строки и следующей за ней в режиме Normal.

Fold by indent

Принятый ответ @Anthon описывает, как установить метод фальцовки на indent; т.е. фальцовка определяется уровнем отступов.

Fold by syntax

Более удобным способом, складки могут быть созданы автоматически на основе синтаксиса языка текущего буфера. Если вы используете язык программирования, назовем его L, и у вас есть определение складчины L (например, вы установили плагин Vim, в котором определена информация о складках L; например, c. vim для C/C++, или python-mode для Python), вам просто нужно установить метод складывания на syntax:

set foldmethod=syntax

Вот и все. Наиболее полезные команды для работы со складками:

  • zo открывает складку у курсора.
  • zShift+o открывает все складки у курсора.
  • zc закрывает складку у курсора.
  • zm увеличивает foldlevel на единицу.
  • zShift+m закрывает все открытые складки.
  • zr уменьшает foldlevel на единицу.
  • zShift+r уменьшает foldlevel до нуля - все складки будут открыты.
45
27.01.2020, 19:33

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

setlocal foldmethod=syntax         
setlocal foldlevelstart=99

setlocal foldmethod— изменить метод Manualскладывания по умолчанию, а foldlevelstart— остановить автоматическое -складывание при открытии файлов. Вы можете изменить значение, чтобы настроить автоматический уровень складывания -. проверьте документацию здесь:https://neovim.io/doc/user/options.html#'foldlevelstart'

2
04.07.2020, 12:47

Теги

Похожие вопросы