Як увімкнути автоматичне складання у Vim? set foldmethod=syntax
здається, нічого не робить.
Як увімкнути автоматичне складання у Vim? set foldmethod=syntax
здається, нічого не робить.
Відповіді:
Щоб дозволити складання на основі синтаксису, додайте щось на зразок такого .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, не будуть підтримувати їх, коли редагують документ. Ручні згини чудово працюють, поки хтось не відредагує ваш код у вихідному контролі, і всі ваші згини тепер опиняться не в тому місці.
:help fold-methods
щоб дізнатися деталі різних методів складання.:help folding
Щоб дізнатися команди клавіатури для маніпулювання складками.:help folds
за допомогою по всій темі складання.let ...=1
команд, set foldmethod=syntax
достатньо лише цього. тобто деякі мови не потребують let
команди.
Складання JavaScript у мене теж не працювало. Я дізнався, коли встановив синтаксис = javaScript (з великою літерою S), він раптом запрацював.
vim version 8
.
Змінено спосіб увімкнення складання в нових версіях Vim (я використовую vim 7.4). Тепер вам слід створити файл ~/.vim/ftplugin/javascript.vim
(на Linux) та додати інструкції щодо складання коду, як пояснено у відповіді Еріка Джонсона. Виявлення та завантаження плагінів типу файлів для певних типів файлів має бути ввімкнено, помістивши це у свій .vimrc
:
filetype plugin on
Випробував усі рішення тут, і жодне не працювало з NeoVim v0.3.1, поки я не знайшов плагін vim-javascript і згортання почало працювати.