vim中使用color_coded为c/cpp文件配色
前言
使用putty + vim + tmux, 对于大型项目的(比如20w+文件)c/cpp文件一直不能找到好的配色方式, 稍微中意的有TagHighlight,vim-cpp-enhanced-highlight。 前者对大型项目太鸡肋,后者配色是通过正则匹配,样式受限, 直到看到color_coded。这货的理念还是比较先进的,通过libclang.so的编译功能来识别c/cpp文件中的标识符,然后针对不同的标识符进行着色。
vim中使用color_coded为c/cpp文件配色
一 前置条件:
- 编译器需要支持C++14
- 需要动态的lua库。
二 准备工作:
编译lua的动态链接库:
下面以macox下为例子:
1)修改lua-5.3.5根目录下的Makefile:
-INSTALL_TOP= /usr/local
+INSTALL_TOP= /Users/liaozhicheng/Install/lua5.3.5
-TO_LIB= liblua.a
+TO_LIB= liblua.a liblua.dylib
2)修改修改lua-5.3.5根目录下的src目录的Makefile
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
+ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)ALL_A= $(LUA_A)
+LUA_SO= liblua.dylib# Targets start here.default: $(PLAT)
@@ -59,6 +60,9 @@ $(LUA_A): $(BASE_O)$(AR) $@ $(BASE_O)$(RANLIB) $@+$(LUA_SO): $(CORE_O) $(LIB_O)
+ $(CC) -o $@ -shared $? -ldl -lm
+$(LUA_T): $(LUA_O) $(LUA_A)$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
3) 编译
(base) ~/Downloads/lua-5.3.5 >> make macosx
(base) ~/Downloads/lua-5.3.5 >> make install
三 编译color_code:
如果1: lua使用系统的liblua.dylib
(base) ~/.vim/bundle/color_coded/build >> cmake -DDOWNLOAD_CLANG=0 -DCUSTOM_CLANG=1 LLVM_CONFIG=~/Install/llvm9.0.0/bin/llvm-config -DLLVM_ROOT_DIR=~/Install/llvm9.0.0/ ..
-- The C compiler identification is AppleClang 9.1.0.9020039
-- The CXX compiler identification is AppleClang 9.1.0.9020039
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found 64bit system
-- Updating submodules
-- Performing Test COMPILER_SUPPORTS_CXX14
-- Performing Test COMPILER_SUPPORTS_CXX14 - Success
-- Performing Test COMPILER_SUPPORTS_CXX1Y
-- Performing Test COMPILER_SUPPORTS_CXX1Y - Success
-- Looking for Lua
-- Found Lua
-- Lua include /usr/local/include/lua5.3
-- Lua lib /usr/local/lib/liblua5.3.dylib
-- Found Curses: /usr/lib/libcurses.dylib
-- Found ZLIB: /Users/liaozhicheng/Install/anaconda2/lib/libz.dylib (found version "1.2.11")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Found LLVM: /Users/liaozhicheng/Install/llvm9.0.0 (found version "9.0.0")
-- Detected that llvm-config comes from a build-tree, adding more include directories for Clang
-- Found Clang (LLVM version: 9.0.0)
-- Include dirs: /Users/liaozhicheng/Install/llvm9.0.0/include;/tools/clang/include;/tools/clang/include
-- Clang libraries: /Users/liaozhicheng/Install/llvm9.0.0/lib/libclang.dylib;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangTooling.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangToolingCore.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangIndex.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFrontendTool.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangDriver.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFormat.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangCodeGen.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangParse.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangSema.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangEdit.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAnalysis.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangSerialization.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerCheckers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerCore.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangRewriteFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangRewrite.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAnalysis.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangARCMigrate.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAST.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangASTMatchers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangDynamicASTMatchers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangLex.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangBasic.a
-- Libclang C library: /Users/liaozhicheng/Install/llvm9.0.0/lib/libclang.dylib
-- Generating sources
-- Checking for luajit
-- Configuring done
-- Generating done
CMake Warning:Manually-specified variables were not used by the project:CUSTOM_CLANG
(base) ~/.vim/bundle/color_coded/build >> make -j 4
Scanning dependencies of target color_coded_track_api
Scanning dependencies of target color_coded_boost
Tracking API changes ...
[ 0%] Built target color_coded_track_api
[ 7%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/codecvt_error_category.cpp.o
[ 15%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/operations.cpp.o
[ 23%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/path.cpp.o
[ 30%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/path_traits.cpp.o
[ 38%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/portability.cpp.o
[ 46%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/unique_path.cpp.o
[ 53%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/utf8_codecvt_facet.cpp.o
[ 61%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/system/src/error_code.cpp.o
[ 69%] Linking CXX static library libcolor_coded_boost.a
[ 69%] Built target color_coded_boost
Scanning dependencies of target color_coded
Scanning dependencies of target color_coded_config_test
[ 76%] Building CXX object CMakeFiles/color_coded.dir/src/main.cpp.o
[ 84%] Building CXX object CMakeFiles/color_coded_config_test.dir/test/src/config/main.cpp.o
[ 92%] Linking CXX shared library color_coded.so
[100%] Linking CXX executable color_coded_config_test
[100%] Built target color_coded_config_test
[100%] Built target color_coded
(base) ~/.vim/bundle/color_coded/build >>
(base) ~/.vim/bundle/color_coded/build >>
(base) ~/.vim/bundle/color_coded/build >> make install
[ 69%] Built target color_coded_boost
[ 84%] Built target color_coded_config_test
Tracking API changes ...
[ 84%] Built target color_coded_track_api
[100%] Built target color_coded
Install the project...
-- Install configuration: "RELEASE"
-- Installing: /Users/liaozhicheng/.vim/bundle/color_coded/color_coded.so
如果2: 使用自定义lua动态库
方式1:
(base) ~/.vim/bundle/color_coded/build >> cmake -DDOWNLOAD_CLANG=0 -DCUSTOM_CLANG=1 -DLUA_INCLUDE_DIR=~/Install/lua5.3.5/include/ -DLUA_LIBRARY=~/Install/lua5.3.5/lib/liblua.dylib -DLLVM_CONFIG=~/Install/llvm9.0.0/bin/llvm-config -DLLVM_ROOT_DIR=~/Install/llvm9.0.0/ ..
-- The C compiler identification is AppleClang 9.1.0.9020039
-- The CXX compiler identification is AppleClang 9.1.0.9020039
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found 64bit system
-- Updating submodules
-- Performing Test COMPILER_SUPPORTS_CXX14
-- Performing Test COMPILER_SUPPORTS_CXX14 - Success
-- Performing Test COMPILER_SUPPORTS_CXX1Y
-- Performing Test COMPILER_SUPPORTS_CXX1Y - Success
-- Looking for Lua
-- Found Lua
-- Lua include /Users/liaozhicheng/Install/lua5.3.5/include
-- Lua lib /Users/liaozhicheng/Install/lua5.3.5/lib/liblua.dylib
-- Found Curses: /usr/lib/libcurses.dylib
-- Found ZLIB: /Users/liaozhicheng/Install/anaconda2/lib/libz.dylib (found version "1.2.11")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Found LLVM: /Users/liaozhicheng/Install/llvm9.0.0 (found version "9.0.0")
-- Detected that llvm-config comes from a build-tree, adding more include directories for Clang
-- Found Clang (LLVM version: 9.0.0)
-- Include dirs: /Users/liaozhicheng/Install/llvm9.0.0/include;/tools/clang/include;/tools/clang/include
-- Clang libraries: /Users/liaozhicheng/Install/llvm9.0.0/lib/libclang.dylib;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangTooling.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangToolingCore.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangIndex.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFrontendTool.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangDriver.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFormat.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangCodeGen.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangParse.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangSema.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangEdit.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAnalysis.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangSerialization.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerCheckers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerCore.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangRewriteFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangRewrite.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAnalysis.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangARCMigrate.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAST.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangASTMatchers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangDynamicASTMatchers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangLex.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangBasic.a
-- Libclang C library: /Users/liaozhicheng/Install/llvm9.0.0/lib/libclang.dylib
-- Generating sources
-- Checking for luajit
-- Configuring done
-- Generating done
CMake Warning:Manually-specified variables were not used by the project:CUSTOM_CLANG-- Build files have been written to: /Users/liaozhicheng/.vim/bundle/color_coded/build
(base) ~/.vim/bundle/color_coded/build >>
(base) ~/.vim/bundle/color_coded/build >>
(base) ~/.vim/bundle/color_coded/build >> make
Scanning dependencies of target color_coded_boost
[ 7%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/codecvt_error_category.cpp.o
[ 15%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/operations.cpp.o
[ 23%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/path.cpp.o
[ 30%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/path_traits.cpp.o
[ 38%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/portability.cpp.o
[ 46%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/unique_path.cpp.o
[ 53%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/utf8_codecvt_facet.cpp.o
[ 61%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/system/src/error_code.cpp.o
[ 69%] Linking CXX static library libcolor_coded_boost.a
[ 69%] Built target color_coded_boost
Scanning dependencies of target color_coded_config_test
[ 76%] Building CXX object CMakeFiles/color_coded_config_test.dir/test/src/config/main.cpp.o
[ 84%] Linking CXX executable color_coded_config_test
[ 84%] Built target color_coded_config_test
Scanning dependencies of target color_coded_track_api
Tracking API changes ...
[ 84%] Built target color_coded_track_api
Scanning dependencies of target color_coded
[ 92%] Building CXX object CMakeFiles/color_coded.dir/src/main.cpp.o
[100%] Linking CXX shared library color_coded.so
[100%] Built target color_coded
(base) ~/.vim/bundle/color_coded/build >> make install
[ 69%] Built target color_coded_boost
[ 84%] Built target color_coded_config_test
Tracking API changes ...
[ 84%] Built target color_coded_track_api
[100%] Built target color_coded
Install the project...
-- Install configuration: "RELEASE"
-- Installing: /Users/liaozhicheng/.vim/bundle/color_coded/color_coded.so
方式2:
step1: 修改cmake/FindLua.cmake文件,加入lua动态库文件搜索路径,可以有两种方法:
方法1: 在findpath 和 findlibrary的HINTS中加入lua的include 和lib路径.
find_path(LUA_INCLUDE_DIR lua.hHINTS
+ /Users/liaozhicheng/Install/lua5.3.5/ENV LUA_DIRPATH_SUFFIXES ${_lua_include_subdirs} include/lua includePATHS
@@ -101,6 +100,7 @@ unset(_lua_include_subdirs)find_library(LUA_LIBRARYNAMES ${_lua_library_names} luaHINTS
+ /Users/liaozhicheng/Install/lua5.3.5/ENV LUA_DIRPATH_SUFFIXES libPATHS
方法2: 加入CMAKEPREFIXPATH设置:
+++ b/cmake/FindLua.cmake
@@ -69,6 +69,8 @@ unset(_lua_library_names)# this is a function only to have all the variables inside go away automaticallyset(LUA_MINOR_VERSIONS 3 2 1)+set(CMAKE_PREFIX_PATH "/Users/liaozhicheng/Install/lua5.3.5")step2: 将编译生成的动态库liblua.dylib重名为liblua5.3.dylib 或者 liblua-5.3.dylib, 原因见color_coded/cmake/FindLua.cmake:
(base) ~/.vim/bundle/color_coded/build >> mv ~/Install/lua5.3.5/lib/liblua.dylib ~/Install/lua5.3.5/lib/liblua5.3.dylib
step3: 编译
(base) ~/.vim/bundle/color_coded/build >> cmake . -DDOWNLOAD_CLANG=0 -DCUSTOM_CLANG=1 LLVM_CONFIG=~/Install/llvm9.0.0/bin/llvm-config -DLLVM_ROOT_DIR=~/Install/llvm9.0.0/ ..
-- The C compiler identification is AppleClang 9.1.0.9020039
-- The CXX compiler identification is AppleClang 9.1.0.9020039
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found 64bit system
-- Updating submodules
-- Performing Test COMPILER_SUPPORTS_CXX14
-- Performing Test COMPILER_SUPPORTS_CXX14 - Success
-- Performing Test COMPILER_SUPPORTS_CXX1Y
-- Performing Test COMPILER_SUPPORTS_CXX1Y - Success
-- Looking for Lua
-- Found Lua
-- Lua include /Users/liaozhicheng/Install/lua5.3.5/include
-- Lua lib /Users/liaozhicheng/Install/lua5.3.5/lib/liblua5.3.dylib
-- Found Curses: /usr/lib/libcurses.dylib
-- Found ZLIB: /Users/liaozhicheng/Install/anaconda2/lib/libz.dylib (found version "1.2.11")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Found LLVM: /Users/liaozhicheng/Install/llvm9.0.0 (found version "9.0.0")
-- Detected that llvm-config comes from a build-tree, adding more include directories for Clang
-- Found Clang (LLVM version: 9.0.0)
-- Include dirs: /Users/liaozhicheng/Install/llvm9.0.0/include;/tools/clang/include;/tools/clang/include
-- Clang libraries: /Users/liaozhicheng/Install/llvm9.0.0/lib/libclang.dylib;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangTooling.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangToolingCore.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangIndex.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFrontendTool.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangDriver.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangFormat.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangCodeGen.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangParse.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangSema.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangEdit.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAnalysis.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangSerialization.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerCheckers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangStaticAnalyzerCore.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangRewriteFrontend.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangRewrite.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAnalysis.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangARCMigrate.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangAST.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangASTMatchers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangDynamicASTMatchers.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangLex.a;/Users/liaozhicheng/Install/llvm9.0.0/lib/libclangBasic.a
-- Libclang C library: /Users/liaozhicheng/Install/llvm9.0.0/lib/libclang.dylib
-- Generating sources
-- Checking for luajit
-- Configuring done
-- Generating done
CMake Warning:Manually-specified variables were not used by the project:CUSTOM_CLANG-- Build files have been written to: /Users/liaozhicheng/.vim/bundle/color_coded/build
(base) ~/.vim/bundle/color_coded/build >> make
Scanning dependencies of target color_coded_boost
[ 7%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/codecvt_error_category.cpp.o
[ 15%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/operations.cpp.o
[ 23%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/path.cpp.o
[ 30%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/path_traits.cpp.o
[ 38%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/portability.cpp.o
[ 46%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/unique_path.cpp.o
[ 53%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/filesystem/src/utf8_codecvt_facet.cpp.o
[ 61%] Building CXX object CMakeFiles/color_coded_boost.dir/lib/boost/system/src/error_code.cpp.o
[ 69%] Linking CXX static library libcolor_coded_boost.a
[ 69%] Built target color_coded_boost
Scanning dependencies of target color_coded_config_test
[ 76%] Building CXX object CMakeFiles/color_coded_config_test.dir/test/src/config/main.cpp.o
[ 84%] Linking CXX executable color_coded_config_test
[ 84%] Built target color_coded_config_test
Scanning dependencies of target color_coded_track_api
Tracking API changes ...
[ 84%] Built target color_coded_track_api
Scanning dependencies of target color_coded
[ 92%] Building CXX object CMakeFiles/color_coded.dir/src/main.cpp.o
[100%] Linking CXX shared library color_coded.so
[100%] Built target color_coded
(base) ~/.vim/bundle/color_coded/build >> make install
[ 69%] Built target color_coded_boost
[ 84%] Built target color_coded_config_test
Tracking API changes ...
[ 84%] Built target color_coded_track_api
[100%] Built target color_coded
Install the project...
-- Install configuration: "RELEASE"
-- Installing: /Users/liaozhicheng/.vim/bundle/color_coded/color_coded.so
四 使用color_coded
结论:如果发现颜色没有效果,一定要先检查是否正确配置了.colorcoded.
在安装过程中发现,colorcoded在 ~/.vim/bundle下面,通过scriptnames可以查看到已经加载,但是测试发现对于c/cpp文件着色笔不明显。 检查配置和CCerror都是正常。最后通过跟踪colorcoded的源码发现: colorcoded/include/vim/highlight.hpp中的highlight_group中的:
auto const mapped(clang::token::map_token_kind(kind, cursor_kind,cursor_type));
if(mapped.size())
{//std::cout << spell.c_str() << " : " << mapped << std::endl;emplace_back(mapped, line, column, spell.c_str());
}
else
{ /* std::cout << "unmapped: " << spell.c_str() << std::endl; */ }
mapped并没有将spell.cstr与kind映射一起来,导致colorcoded.vim不能识别colorcoded/after/syntax/colorcoded.vim中的 Member、Variable、Namespace、EnumConstant。
进一步跟踪colorcoded/include/core.hpp -> queue中找到原因: .colorcoded这个配置文件么有加入正确的头文件,下面是通过ycm-Generator生成color_coded配置文件
(base) ~/.vim/bundle/color_coded >> more ~/Workspace/global-6.6.3/.color_coded
-x
c
-DBINDIR="/usr/local/bin"
-DDATADIR="/usr/local/share"
-DHAVE_CONFIG_H
-DLIBDIR="/usr/local/lib"
-DLID="no"
-DLOCALSTATEDIR="/usr/local/var"
-DLTDL
-DLTDLOPEN=libltdlc
-DLT_CONFIG_H=<config.h>
-DPIC
-DSYSCONFDIR="/usr/local/etc"
-DUSE_EXTRA_FIELDS
-I.
-I..
-I../libdb
-I../libglibc
-I../libparser
-I../libutil
-I./libltdl
-Ilibltdl
vim中使用color_coded为c/cpp文件配色相关推荐
- linux中vim如何查找字符串,[ubuntu] 在vim中查找指定字符串和指定文件
推荐文章 更新源的方法 提前保存一下原来源 sudo cp sources.list sources.list.bak 换源命令: sudo gedit /etc/apt/sources.list 或 ...
- 将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中
将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中 写这种.h和.cpp文件分开的大程序,虽然对很多人来说很简单,对自己来说算是第一次吧,好好学C++,加油~ 题目:定义Point类,由 ...
- 在VS Studio中管理多个cpp文件或项目
有时我们需要保存多个cpp文件,然后在使用时希望运行其中的一个,但是一个c++项目中只能有一个main函数,所以不能有多份cpp文件存在. 下面两个方法可以帮助我们更好地处理这种情况 1.同一个项目中 ...
- 以普通用户启动的Vim如何保存需要root权限的文件
在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'readonly' option is set (add ! to ...
- .h文件和.cpp文件组织结构
1.包含关系: .h文件一般包含在.cpp文件中,.h文件中多为变量和类的声明,而.cpp文件才是变量和类中函数的真正定义. 但是#include <iostream> 这个文件既不是.c ...
- c语言中.h文件和.cpp文件解析
理论上来说cpp文件与头文件里的内容,只要是C语言所支持的,无论写什么都可以的,比如你在头文件中写函数体实现,任何一个cpp文件包含此头文件就可以将这个函数编译成目标文件的一部分(编译是以cpp文件为 ...
- window+cmd+.cpp(window系统命令行运行.cpp文件) + LINK : fatal error LNK1104: cannot open file ‘LIBCMT.lib‘
在window系统中,命令行运行.cpp文件的步骤(假定已经安装好visual studio 2015): 1. 设置环境变量:C:\Program Files (x86)\Microsoft Vis ...
- vim中,c/cpp文件如何在头文件和.c/.cpp文件中快速的进行跳转
vim中,c/cpp文件如何在头文件和.c/.cpp文件中快速的进行跳转 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官 ...
- vim中删除dos格式文件中的^M号的方法以及深度规整文件格式
在windows平台上开发时, 我们编辑的文件多半是dos格式, 当我们将它们采用xftp或是secureCRT等ssh软件传输到Linux的vim环境下面时, 通常会出现如下令人惨不忍睹的画面: 为 ...
- QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题
QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题 参考文章: (1)QT解决方案中新建动态链接库工程,且继承于QObjec ...
最新文章
- Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件...
- 并不对劲的概率与期望
- python3安装opencv
- python整数类型提供了4种进制表示_关于整数类型的 4 种进制表示,哪个选项的描述是正确的?_学小易找答案...
- 文件上传速度查询方法
- div中同时存在文本和数字超过两行出省略号
- 深入分析同步工具类之AbstractQueuedSynchronizer
- 通过企业账号邀请开发者(不需要支付99刀,在真机上调试)
- 【机器学习】(七)马尔可夫链、马尔可夫随机场、条件随机场
- ramdump crash工具
- PDF怎么转图片?建议收藏这些方法
- vim实用技巧总结 [Linux]
- 使用阿里云的ip地址查询服务-使用java调用ip地址查询服务
- 基于docker一行命令搭建个人博客wordPress
- 【Pytorch】torch. bmm()
- Andorid显示圆形图片的4种方式
- 蓝桥杯 未名湖边的烦恼
- pyqt5以及pyqtgraph(pyqt界面设计绘图)
- quorum中的BFT
- c语言编写天气预报程序,在Deno中构建一个命令行天气预报程序