Подготовьте среду vim для работы с clang-форматом
Проблема:
E319: Извините, команда недоступна в этой версии
проблема
Когда я запускаю среду vim и пытаюсь переформатировать код (CTRL+K), я получаю это предупреждение на экране
Среда:
Система: Mac OS X
Настройки:
Vim:
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 17 2016 20:17:27)
MacOS X (unix) version
Included patches: 1-91
питон:
python --version: Python 3.5.2
Что я делаю
- Обновление vim: 7.3 -> 8.0
- Обновление python: ~2.7 -> ~3.5
Я обновил файл.vimrc
отmap <C-K> :pyf .../clang-format.py<cr> imap <C-K> <c-o>:pyf .../clang-format.py<cr>
вmap <C-K> ggVG :py3f .../clang-format.py<cr> imap <C-K> <c-o>:py3f .../clang-format.py<cr>
Также я обновляю файл в формате clang
https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format.py
Спасибо,
3 ответа
Решение:
1. Перейдите в файл.vimrc и добавьте команды
map <C-K> :pyf <path-to-this-file>/clang-format.py<cr>
imap <C-K><c-o>:pyf <path-to-this-file>/clang-format.py<cr>
2.Добавьте этот https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format.py исходный код в файл clang-format.py, вы можете сохранить этот файл в
<path-to-this-file>/clang-format.py
где путь к этому файлу - это путь к направлению, в котором вы поместили этот файл.
3. Сохраните файл clang-format.py и запустите vim. Проверьте, что команда работает.
Вы также можете установить Macvim для OSX. Инструкция вы можете найти здесь. Как я могу установить MacVim на OS X?
Вот
$ which clang-format
возвращается
/usr/local/bin/clang-format
затем
ls -ls /usr/local/bin/clang-format
указывает на
/usr/local/Cellar/clang-format/2018-04-24/share/clang/clang-format.py
Так и делаю
$ vim ~/.vimrc
map <C-K> :pyf /usr/local/Cellar/clang-format/2018-04-24/share/clang/clang-format.py<cr>
imap <C-K> <c-o>:pyf /usr/local/Cellar/clang-format/2018-04-24/share/clang/clang-format.py<cr>
Это работает на vim (из терминала), но не на macvim.
Просто упомяните проект https://github.com/rhysd/vim-clang-format
Что очень удобно в использовании и избавляет от повторяющейся работы.