Як увімкнути автоматичні складки у Vim?


Відповіді:


140

Щоб дозволити складання на основі синтаксису, додайте щось на зразок такого .vimrc:

set foldmethod=syntax
set foldlevelstart=1

let javaScript_fold=1         " JavaScript
let perl_fold=1               " Perl
let php_folding=1             " PHP
let r_syntax_folding=1        " R
let ruby_fold=1               " Ruby
let sh_fold_enabled=1         " sh
let vimsyn_folding='af'       " Vim script
let xml_syntax_folding=1      " XML

Складання на основі синтаксису визначається у файлах синтаксису мови, які знаходяться у $ VIM / синтаксисі. Але деякі мови не мають правил згортання, вбудованих у файли синтаксису. Наприклад, Python. Для цих мов вам потрібно завантажити щось із http://vim.sf.net, що робить складки. В іншому випадку вам потрібно буде використовувати складки на основі відступів. Щоб зробити це ефективно, ви, швидше за все, захочете додати наступне у свій файл .vimrc:

set foldmethod=indent
set foldnestmax=2

Інші види складання

Існує 6 типів складок:

manual          manually define folds
indent          more indent means a higher fold level
expr            specify an expression to define folds
syntax          folds defined by syntax highlighting
diff            folds for unchanged text
marker          folds defined by markers in the text

Особисто я використовую лише синтаксичні папки. Зазвичай я просто хочу скласти метод, а не складати всі відступи. Непослідовний відступ та дивно відформатований застарілий код на роботі часто ускладнює або неможливо складати відступи. Додавання позначок до документа є нудним, і люди, які не використовують Vim, не будуть підтримувати їх, коли редагують документ. Ручні згини чудово працюють, поки хтось не відредагує ваш код у вихідному контролі, і всі ваші згини тепер опиняться не в тому місці.

Більше читання

  1. Дивіться, :help fold-methodsщоб дізнатися деталі різних методів складання.
  2. Див., :help foldingЩоб дізнатися команди клавіатури для маніпулювання складками.
  3. Зверніться :help foldsза допомогою по всій темі складання.

8
Ви справді все це набрали за хвилину після публікації запитання? +1 для наочності, деталізації та швидкості!
Cascabel

Дякуємо, що поділилися своїм досвідом! Ви не знаєте, як увімкнути складання на C ++?
Віталій Ісаєв

Для довідки: Перевірено, що C / C ++ не потребує додаткових let ...=1команд, set foldmethod=syntaxдостатньо лише цього. тобто деякі мови не потребують letкоманди.
Johnny Wong

3

Складання JavaScript у мене теж не працювало. Я дізнався, коли встановив синтаксис = javaScript (з великою літерою S), він раптом запрацював.


1
хе-хе, я зробив це, і зненацька раптові кольори просто зникли, думаю, це не для всіх. :) vim version 8.
ArchNoob

Спочатку я спробував це, але це нічого не склало і забрало підсвічування синтаксису. Потім я повертаю синтаксис = javascript і раптом всі мої функції здаються складеними. Дивно.
elig

1

Змінено спосіб увімкнення складання в нових версіях Vim (я використовую vim 7.4). Тепер вам слід створити файл ~/.vim/ftplugin/javascript.vim(на Linux) та додати інструкції щодо складання коду, як пояснено у відповіді Еріка Джонсона. Виявлення та завантаження плагінів типу файлів для певних типів файлів має бути ввімкнено, помістивши це у свій .vimrc:

filetype plugin on

1

Випробував усі рішення тут, і жодне не працювало з NeoVim v0.3.1, поки я не знайшов плагін vim-javascript і згортання почало працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.