目前,我从我的构建目录中调用CMake,如下所示:
CXX ="/ opt/gcc-4.8/bin/g ++"cmake ..
让CMake使用这个特定的编译器.否则它使用操作系统默认编译器.
我的PATH /opt/gcc-4.8/bin在其他一切方面都有" ".那么,而不是预先设置环境变量是否有办法在"`CMakeLists.txt"文件中指定在路径上使用默认的g ++?
我知道这个脚本:http://www.vim.org/scripts/script.php?script_id = 3797.有人建议过几次,关于Vim的C++ 11语法的其他问题已经因为重复这个问题而被关闭:是否有一个用于vim的C++ 11语法文件?.
不幸的是,建议的脚本导致范围构造(例如"namespace :: member()")不再被突出显示,并且不再突出显示函数和类名.
现在有人为Vim提供更好的C++ 11插件吗?理想情况下,保留常规C++插件的所有功能,标记新关键字/保留字(例如nullptr),lambda表达式/通用初始化语法不标记为错误.等等
考虑以下:
SET(TEST_DIR, "test")
INSTALL(PROGRAMS scripts/foo.py DESTINATION ${TEST_DIR})
INSTALL(PROGRAMS scripts/foo.py DESTINATION @TEST_DIR@)
Run Code Online (Sandbox Code Playgroud)
第一个INSTALL命令不起作用.第二个.这是为什么?这两者有什么区别?@@除了在创建配置文件的上下文中,我没有找到任何对扩展的引用.其他一切只使用${}扩展.
更新:好的,上面的明显错误.我的SET()命令有一个无关的逗号.删除它,使它看起来像:
SET(TEST_DIR "test")
Run Code Online (Sandbox Code Playgroud)
导致两者@@和${}扩展工作.仍然想知道(a)@@相反的含义是什么${},以及为什么只有前者与我的错误SET()陈述一起工作.
我想要一种在 Vim 中快速检查光标下单词拼写的方法。
在本机 Vim 中执行此操作需要我:
(1) 激活拼写 (2) 检查单词 (3) 停用拼写
(1) 和 (3) 的原因是我不希望始终打开拼写模式(例如,我可能正在编写函数/类文档,并且不希望拼写突出显示代码中的非自然语言单词) 。
我认为这样的事情可能会起作用:
nnoremap <F1> :setlocal spell<CR>z=:setlocal nospell<CR>
Run Code Online (Sandbox Code Playgroud)
但是,当然,最后一个子句 ( :setlocal nospell) 会干扰并取消拼写检查。
我也尝试了以下方法,但这也不起作用:
function! s:spell_check_current()
:setlocal spell
:normal("z=")
:setlocal nospell
endfunction
nnoremap <F1> :call <SID>spell_check_current()<CR>
Run Code Online (Sandbox Code Playgroud)
有什么建议么?
谢谢。
我的“ setup.py”目前包括以下声明:
setup(...
classifiers = [
...
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.1",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python",
...
],
...
)
Run Code Online (Sandbox Code Playgroud)
有没有办法让我指定“任何 Python 3,从 3.0 起”,而无需明确列举所有现有和未来的 Python?
我问这个的原因是因为,即使上面指定了一般的“编程语言 :: Python :: 3”,Anaconda 安装失败:
Fetching package metadata ......... …Run Code Online (Sandbox Code Playgroud) 对于文件类型插件,我想定义并使用默认的自定义突出显示名称,例如:
hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow
Run Code Online (Sandbox Code Playgroud)
但是,我希望允许用户定义自己而不是默认值,因此可以执行以下操作:
if <somehow or other check if 'CsvColumn' has NOT been defined>
hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow
fi
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
由于这是在文件类型插件中,因此每次加载或读取缓冲区时都会执行一次,因此很有可能在获取用户的“.vimrc”之后获取它,因此用户在那里提供的任何定义或如果我不进行检查,colorscheme 中的内容将被覆盖。
我喜欢 git 索引允许的细粒度提交,即单个文件的暂存,甚至git add在最终提交之前通过。不幸的是,有时在花费一些时间进行特定提交后,肌肉记忆开始起作用,因此我git commit -a -m "msg". 然后我要么不得不忍受它,要么跳过一些reset或--amend箍。
有没有办法让我(理想情况下,全局)配置 Git,以便如果我发出 a git commit -a,它会被拦截?也许一个脚本要求我确认我是否真的想提交所有内容?我曾考虑将提交操作委托给包装器脚本(例如,“gitcommit”),但认为这不会很好地工作,因为它不会阻止我执行 a git commit -a -m "msg",这首先是问题所在。
我有一个作为项目一部分构建并链接到的库。我要提供的工具可以在系统范围内(或设置$ {CMAKE_INSTALL_PREFIX}的任何位置)安装该库。否则,默认情况下,项目的最终构建产品将静态链接到库,并且前者将被安装,但是库二进制文件保留在构建目录中。
换一种说法:
$ make
$ make install
Run Code Online (Sandbox Code Playgroud)
将构建和安装程序,但仅
$ make install.foo
Run Code Online (Sandbox Code Playgroud)
会将库安装到$ {CMAKE_INSTALL_PREFIX},并在需要时首先构建它。
到目前为止,我有类似这样的内容(从实际脚本中简化了,所以可能会有错误):
INCLUDE_DIRECTORIES( "${CMAKE_CURRENT_LIST_DIR}")
SET (FOO_LIBRARY "foo")
# Following builds library and makes it available to
# be linked other targets within project by:
# TARGET_LINK_LIBRARIES(${progname} ${FOO_LIBRARY})
ADD_LIBRARY(${FOO_LIBRARY}
foo/foo.cpp # and other sources ...
)
###########################################################
# Approach #1
# -----------
# Optionally allow users to install it by invoking:
#
# cmake .. -DINSTALL_FOO="yes"
#
# This works, but it means that users will have to …Run Code Online (Sandbox Code Playgroud)