以下是在C++ 11中初始化变量的两种方法:
T a {something};
T a = {something};
Run Code Online (Sandbox Code Playgroud)
我在所有可以想到的场景中测试了这两个,但我没有发现差异.这个答案表明两者之间存在细微差别:
对于变量,我在这些
T t = { init };
或T t { init };
样式之间没有太多关注,我发现差异很小,最坏的情况只会导致有关滥用显式构造函数的有用的编译器消息.
那么,两者之间有什么区别吗?
我正在尝试运行一些Ruby项目,项目正在使用.ruby-version
文件.该文件仅包含:
1.9.3
Run Code Online (Sandbox Code Playgroud)
我安装了最新的Ruby 1.9.3:
$ rbenv install 1.9.3-p448
Run Code Online (Sandbox Code Playgroud)
但是当我跑的时候ruby --version
我得到了
rbenv: version '1.9.3' is not installed
Run Code Online (Sandbox Code Playgroud)
要修复我列出的错误~/.rbenv/versions/
,它包含该文件夹1.9.3-p448
.我将该文件夹重命名为1.9.3
并运行rbenv rehash
.这解决了这个问题.
看起来像-p448
部分(它是什么意思?补丁?)混淆了rbenv.如何在不手动重命名文件夹的情况下识别正确的1.9.3版本~/.rbenv
?我也可以.ruby-version
改为1.9.3-p448
,但这意味着该项目将取决于我特定的Ruby 1.9.3"补丁",这很糟糕.
我最近偶然发现了 netrw 中的一个功能,称为netrw-C
. 来自文档:
SETTING EDITING WINDOW *netrw-C* {{{2
One may select a netrw window for editing with the "C" mapping, or by setting
g:netrw_chgwin to the selected window number. Subsequent selection of a file
to edit (|netrw-cr|) will use that window.
Related topics: |netrw-cr|
Associated setting variables: |g:netrw_chgwin|
Run Code Online (Sandbox Code Playgroud)
我已经设法通过手动设置来实现所描述的行为
g:netrw_chgwin
,但我无法理解或发现“C”映射是如何工作的。
是的,我可以直接绘制地图
:let g:netrw_chgwin = winnr()
Run Code Online (Sandbox Code Playgroud)
但我很好奇原始netrw-C
映射是如何工作的。
有谁知道如何使用文档中描述的“C”映射?
我在使用 tmux 1.8 时遇到了这个问题:我想将status-keys
选项设置为“emacs”,因为我真的不喜欢在 vi 模式下输入命令。但是,将以下行添加到 .tmux.conf 没有任何效果:
set -g status-keys emacs
Run Code Online (Sandbox Code Playgroud)
当 tmux 重新启动时,tmux show-options -g | grep keys
说emacs
但实际行为是 vi 风格的。
问题的根源是$EDITOR
环境变量,它vim
在我的情况下设置为。文件指出:
status-keys [vi | emacs]
Use vi or emacs-style key bindings in the status line,
for example at the command prompt. The default is emacs,
unless the VISUAL or EDITOR environment variables are set
and contain the string `vi'.
Run Code Online (Sandbox Code Playgroud)
显然,当环境变量是“vim”时,它会强制使用 vi 状态键。
尽管环境变量存在,有没有办法覆盖此行为并让提示表现 emacs 风格?我显然可以解决这个问题(比如用其他 env 变量启动 tmux …