是否有命令告诉compiz我们想要将焦点放在前面并将焦点设置到特定窗口?我们该如何识别该命令中的窗口?
这个问题背后的原因是以下用例:
假设我们有一个wiki来记录我们发现的任何有趣的东西.使用键盘快捷键将浏览器窗口与我们的Wiki页面放在前面并立即开始键入然后使用另一个组合键切换到我们之前工作的应用程序将非常方便
我知道ALT+ TAB在最后两个使用的窗口之间切换,但不能支持更复杂的应用程序组合.例如Browser + Eclipse + Wiki
如果有一个像上面描述的那样的命令,很容易从KDE或GNOME界面添加一个快捷方式
当水平拆分Vim窗口时,滚动"旧"窗口的内容以保留相对光标线位置.即使对于小的"帮助"缓冲区,例如quickfix或预览窗口,也会发生这种情况.
当重复打开和关闭分割时,由此引起的文本移动变得烦人 - 例如,完成插件使用的预览窗口.是否可以禁用此功能,并且在拆分时不要滚动旧窗口(除非必须保持光标线可见)?
示例 - 当前行为:
+--------------+ +--------------+
| a | | b |
| b | copen | c (cursor) |
| c (cursor) | --> | d |
| d | +--------------+
| e | | (preview) |
+--------------+ +--------------+
Run Code Online (Sandbox Code Playgroud)
期望的行为:
+--------------+ +--------------+
| a | | a |
| b | copen | b |
| c (cursor) | --> | c (cursor) |
| d | +--------------+
| e | | (preview) |
+--------------+ +--------------+
Run Code Online (Sandbox Code Playgroud) 我正在尝试测试我班级的受保护方法和构造函数.为此,我尝试将其子类化,并使用C++ 11 using关键字将其成员重新导出为public :
class Foo {
protected:
Foo(int i) {}
void run() {}
};
class TestableFoo : public Foo {
public:
using Foo::Foo;
using Foo::run;
};
int main() {
TestableFoo foo(7);
foo.run();
}
Run Code Online (Sandbox Code Playgroud)
但是,g ++和clang ++都无法编译它,产生以下错误:
test.cpp:13:15: error: ‘TestableFoo::TestableFoo(int)’ is protected
using Foo::Foo;
^
test.cpp:18:16: error: within this context
TestableFoo foo(7);
^
Run Code Online (Sandbox Code Playgroud)
即使run方法公开(我单独确认),TestableFoo构造函数仍然受到保护.为什么会这样?我可以理解决策(继承与覆盖可见性),但为什么方法和构造函数之间存在不一致?
我使用映射到普通模式命令,我也想在插入模式下工作.这可以通过添加<C-o>到插入模式映射来完成:
nmap <C-Up> 10<Up>
imap <C-Up> <C-o>10<Up>
Run Code Online (Sandbox Code Playgroud)
但这意味着重复每次映射两次.为了避免重复,我试图"重载"其他一些键,然后将其用于模式特定部分:
" F12 selects prefix suitable for current mode
nmap <F12> <Nop>
imap <F12> <C-o>
" single mapping relying on "overloaded" F12
map <C-Up> <F12>10<Up>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它不起作用.插入模式下的F2只是<F2>作为文本插入.知道什么是错的以及如何解决它?如果您可以将解决方案扩展到可视模式,则可获得积分.
我有以下代码(它编码一个按下的按钮):
with buttons select
tmp <= "000" when x"1",
"001" when x"2",
"010" when x"4",
"011" when x"8",
"100" when others;
code <= input(1 downto 0);
error <= input(2);
Run Code Online (Sandbox Code Playgroud)
我试图在不使用tmp信号的情况下重写它.可能吗?以下不起作用:
with buttons select
error & code <= "000" when x"1",
"001" when x"2",
"010" when x"4",
"011" when x"8",
"100" when others;
Run Code Online (Sandbox Code Playgroud)