У мене проблема з Vim, і я думаю, що це може бути в моєму vimrc
файлі (або мені сказали, що це мій vimrc
файл).
Як мені це підтвердити? Якщо це мій vimrc
файл, як я знаю , де саме проблема полягає?
У мене проблема з Vim, і я думаю, що це може бути в моєму vimrc
файлі (або мені сказали, що це мій vimrc
файл).
Як мені це підтвердити? Якщо це мій vimrc
файл, як я знаю , де саме проблема полягає?
Відповіді:
Перше, що ви хочете зробити - це запустити Vim із налаштуваннями за замовчуванням:
vim -u NONE -U NONE -N
У -u NONE
запобігає Vim від завантаження вашого vimrc, -U NONE
запобігає Vim від завантаження вашого gvimrc, і -N
каже Vim використовувати не сумісний-режим (це не потрібно, але більшість користувачів Vim не використовуються режим «сумісний»). Зверніть увагу , що NONE
це потрібно , щоб бути у всіх великих буквах.
У Windows ви можете додати ці прапори, створивши новий ярлик 1 .
Якщо проблема залишається, знаєте, це не щось у вашому vimrc.
Якщо проблема зникає, тепер це викликано чимось у вашому файлі vimrc.
Ура! Іди і задай своє запитання. Не забудьте зазначити, що ви намагалися запустити Vim без файлу vimrc!
Якщо ви цього ще не зробили, ви, ймовірно, спершу хочете зберегти резервну копію файлу vimrc.
Наступне, що ви, мабуть, хочете зробити - це спочатку відключити всі плагіни; плагіни можуть трохи змінити Vim. Якщо це вирішує проблему, то спробуйте з’ясувати,
який плагін, повторно ввімкнувши їх по одному. Після того, як ви дізналися, який саме плагін викликає проблему, ви можете спробувати його виправити, прочитавши документацію цього плагіна та / або задавши питання з тегом plugin-<name>
.
Якщо це НЕ плагін, і ви не маєте ніякого уявлення , що це викликає проблему, то це процедура проб і помилок. Прокоментуйте один або кілька рядків у своєму vimrc, запустіть Vim, перевірте, чи не виникає проблема, і повторіть цю процедуру, поки проблема не перестане виникати. Найшвидший спосіб зробити це:
Зрештою, у вас повинен бути один варіант або комбінація декількох варіантів, що викликає ваші проблеми. Дізнатися більше про будь-який варіант у Vim можна за допомогою:
:help 'option_name'
Цитати тут важливі, вони зазвичай працюють без них, але іноді ви опиняєтесь на неправильній сторінці, якщо ви їх опускаєте.
Якщо ви все ще розгубилися після прочитання довідкової сторінки, ви знаєте, де задати питання ;-)
Якщо ви хочете ізолювати один плагін, можливо, щоб задати питання про нього, ви хочете завантажити якомога менше, але все-таки завантажити плагін; Ви можете легко зробити це за допомогою функції пакетів Vim. Для цього потрібен Vim 8 або досить нова версія Neovim.
Створіть новий порожній каталог; ми будемо використовувати ~/plugin
шлях у цьому прикладі. Тепер покладіть плагін у звичайний pack/plugins/start/$name
каталог. Наприклад:
git clone https://github.com/fatih/vim-go.git ~/plugin/pack/plugins/start/vim-go
Створіть test-vimrc
файл із наступним вмістом; це забезпечить, що Vim буде завантажувати плагіни з ~/plugin
каталогу, а не з ~/.vim
каталогу:
set nocompatible
set packpath=~/plugin,/usr/share/vim/vimfiles,/usr/share/vim/vim80,/usr/share/vim/vimfiles/after,~/plugin/after
packloadall!
syntax on
filetype plugin indent on
Почніть Vim з:
vim -U NONE -u ~/test-vimrc
Тепер у вас є мінімальний vimrc тільки з цим єдиним плагіном.
Виноски
1 Наприклад: на 64 - бітної Windows, ярлик буде виглядати приблизно так: "C:\Program Files (x86)\Vim\vim74\vim.exe" -u NONE -U NONE -N
. Щоб створити його, клацніть правою кнопкою миші у Файловому провіднику, де ви хочете клацнути ярлик, а потім виберіть Створити -> Ярлик і вставте текст ярлика. Можливо, вам доведеться змінити шлях Vim, якщо ваш Vim встановлений в іншому місці.
-U NONE
якщо є -u NONE
.
Існує -D
параметр Vim, спеціально для налагодження, який перейде в режим налагодження після виконання першої команди зі скрипту.
Наприклад, щоб запустити Vim в режимі налагодження без плагінів, запустіть як:
vim --noplugin -D
Введіть n
/, next
щоб проаналізувати наступний рядок і продовжуйте натискати Enter.
І cont
або q
повернутися до vim
інтерфейсу.
Якщо ви використовуєте версію GUI, gui
введіть команду у свій vimrc, щоб запустити налагодження відразу після цієї команди.
Натисніть Ctrl+ dдля переліку доступних команд
Детальніше:
:help debug-scripts
Як уже згадувалося, спочатку спробуйте vim -u NONE -U NONE -N
переконатися, що ваш вініл працює добре.
Потім запустіть vim звичайно і перевірте
:messages
зсередини vim після проблеми, яка покаже всі попередження та помилки.
Нарешті запустіть vim із наступною командою
vim -V9logfile.log
який створить лог - файл з ім'ям logfile.log
, -V9
є рівень протоколювання і спробуйте відтворити проблему.
Ще одна порада: як печеринець, як може здатися, мені подобається додавати: echom "message" до мого .vimrc, щоб побачити, що виконується, а що ні.
Наприклад
if executable('ag')
:echom "AG FOUND"
...
endif
Це допомагає мені швидко зрозуміти, чи виконується блок if тощо. Повідомлення буде надруковано на консолі наступного разу, коли ви запустите vim.
echom
іншу цікаву команду - :messages
це отримати повний журнал повідомлень, що перегукуються. Іноді може бути корисно подивитися на них після запуску.
Одне, що я знайшов, допомагає зберігати колекцію змінних, які перемикають частини вашого, .vimrc
щоб ви могли вимкнути або включити його частини, не коментуючи речі. Це також має приємний побічний ефект, що змушує задуматися про організацію вашої .vimrc
.
" feature toggles in vimrc
let g:vimrc_feat_pathogen = 1
let g:vimrc_feat_core_minimal = 1
let g:vimrc_feat_matchit = 1
let g:vimrc_feat_options = 1
let g:vimrc_feat_colors_and_highlight = 1
let g:vimrc_feat_key_rebinding_arpeggio = 1
let g:vimrc_feat_key_rebinding = 1
let g:vimrc_feat_autocommand_group = 1
let g:vimrc_feat_custom_definitions = 1
let g:vimrc_feat_load_opam = 1
Ось приклад розділу, який охороняє if
:
if g:vimrc_feat_core_minimal
set nocompatible
filetype plugin indent on
syntax on
endif
Мій час завантаження vimrc був дуже повільним, близько 400 мс, і я скоротив його до 20 мс, лише видаливши цю лінію:
silent !mkdir ~/.config/nvim/backups > /dev/null 2>&1
Переконайтесь, що у вас немає таких дзвінків до зовнішніх команд.
Ось найпростіша процедура для початку роботи.
:source %
або:so $MYVIMRC