关于C ++:准备vim环境以使用clang格式

Prepare vim environment to work with clang-format

问题:

E319: Sorry, the command is not available in this version

问题
当我运行vim环境并尝试重新格式化代码(CTRL + K)时,我在屏幕上收到此警告
环境:
系统:Mac OS X

设定:
Vim:

1
2
3
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 17 2016 20:17:27)
MacOS X (unix) version
Included patches: 1-91

Python:

1
python --version: Python 3.5.2

我做的事

  • 更新vim:7.3-> 8.0
  • 更新python:?2.7->?3.5
  • 我更新了.vimrc文件

    map :pyf .../clang-format.py
    imap :pyf .../clang-format.py


    map ggVG :py3f .../clang-format.py
    imap :py3f .../clang-format.py

  • 我也更新了clang格式的文件
    https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format.py

谢谢,


解:

1.转到.vimrc文件并添加命令

1
2
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文件中,您可以将该文件保存到i.e

1
<path-to-this-file>/clang-format.py

此文件的路径是指向放置此文件的方向的路径。

3.保存clang-format.py文件并运行vim。 检查命令是否有效。

您也可以为OSX安装macvim。 您可以在此处找到说明。 如何在OS X上安装MacVim?

PS:如果收到"抱歉,该命令在此版本中不可用"错误,请尝试:

1
2
map <C-K> :py3f <path-to-this-file>/clang-format.py<cr>
imap <C-K><c-o>:py3f <path-to-this-file>/clang-format.py<cr>


这里

1
$ which clang-format

退货

1
/usr/local/bin/clang-format

然后

1
ls -ls /usr/local/bin/clang-format

指着

1
/usr/local/Cellar/clang-format/2018-04-24/share/clang/clang-format.py

所以我做

1
2
3
4
$ 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。