这可能吗?
从概念上讲,解决方案应该适用于许多可能的配置,范围从在tmux窗口的窗格中的单独虚拟终端中运行的两个vim实例,到位于不同地理区域中的单独机器上的单独终端,一个或两个通过网络连接(换句话说,vims由两个独立的shell进程托管,无论如何它们已经在tmux下了.
这个案例促使我思考这个问题:
我有两个tmux面板,vim打开,我想使用Vim yank/paste来复制文件.
但它只有在我让它们都在Vim的同一个实例中运行时才有效,所以我不得不:
这有点像PITA,如果我有远见切换到已经运行vim的合适终端来打开我的文件,但是工作流程和习惯的命运很少与本来很方便的相匹配,这一切都可以避免.
所以问题是,是否存在一个命令或者是一个直接构造(shell)脚本的可能性,它允许我在独立运行的vim实例之间加入缓冲区?我很难让Google充分回答这个问题.
如果没有足够的答案(或者如果确定Vim不具备在其实例中完成缓冲区转移的特征),则可以接受上述方法3的良好实施(可与键密接).
与此同时,我将继续进一步自定义我的vim配置,并强迫自己尽可能少地使用vim实例.
我有一个我要反转的数字列表.
它们已经排序了.
35 53 102 342
我要这个:
342 102 53 35
所以我想到了这个:
echo $NUMBERS | ??? | tac | xargs
什么是???
它应该将空格分隔列表转换为行分隔列表.
我想避免设置IFS.
也许我可以使用bash数组,但是我希望有一个命令,其生命的目的是与xargs相反(也许xargs不仅仅是一个小技巧!)
我正在尝试捕获全局鼠标和键盘输入.
LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam) {
if (nCode >= 0) {
if (wParam == WM_RBUTTONDOWN) printf("right mouse down\n");
if (wParam == WM_RBUTTONUP) printf("right mouse up\n");
}
return CallNextHookEx(0, nCode, wParam, lParam);
}
HHOOK mousehook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, NULL, 0);
while(true) {
MSG msg;
if (PeekMessage(&msg,0,0,0,PM_REMOVE)) {
printf("msg recvd\n");
TranslateMessage(&msg);
DispatchMessage(&msg);
}
#ifdef TEST
Sleep(50);
#endif
}
Run Code Online (Sandbox Code Playgroud)
所以一切都在这里工作,除非我#define TEST放入Sleep,鼠标变得非常迟钝,如果我突然只允许鼠标每秒更新20次,可能会出现这种情况.没有睡眠,我将CPU固定在100%.但是现在这没关系(如果我使用的话就会消失GetMessage).
根据我的理解,低级钩子通过上下文切换到安装它的进程,然后发送进程某种消息让它执行钩子回调.令我困惑的是,为什么我的程序永远不会打印"msg recvd",但只要我点击鼠标右键,就会打印"鼠标右键/向上".这使我得出结论,我MouseHookProc在PeekMessage呼叫期间被调用.它恰好是某种特殊的消息,并PeekMessage返回0.但我仍然需要打电话PeekMessage或一些等价物.
由于我的程序需要做很多事情,我显然不能通过PeekMessage …
该文件表明,这种"分配"储存纹理和水平.提供的伪代码似乎表明这是针对mipmap级别的.
如何使用glTexStorage涉及glGenerateMipmap?glTexStorage似乎"锁定"纹理的存储大小.在我看来,这只会使事情变得不那么灵活.是否意味着要在这里获得性能提升?
它是相当新的,只能在4.2中使用,所以我会尽量避免使用它,但我很困惑,因为它的描述使它听起来很重要.
如何在早期GL版本中管理纹理存储?当我打电话给glTexImage2D我有效擦除并释放以前与纹理手柄相关联的存储时,是吗?并且生成mipmap也会自动为我处理存储空间.
我记得使用老式的glTexSubImage2D方法来实现OpenGL 2风格的渲染到纹理,以便在我以前的引擎实验中做一些后期处理效果.这是有道理的,glTexStorage会带来管理纹理相关的资源,现在我们有更好的方法来做到RTT更明智的方式.
我想知道使用时会有什么不同:
lipo -create i386/libAwesome.a armv7/libAwesome.a -o fat/libAwesome.a
Run Code Online (Sandbox Code Playgroud)
和
libtool -static i386/libAwesome.a armv7/libAwesome.a -o fat/libAwesome.a
Run Code Online (Sandbox Code Playgroud)
我的印象lipo更为通用,它只会粘贴来自不同架构的两个文件,而libtool特定于库,这是真的吗?
在什么情况下我应该更喜欢Lipo而不是Libtool?
情况如下:复杂的Web应用程序无法正常工作,并且可能始终如一地产生不需要的行为.问题的原因尚不清楚.
建议:跟踪所有javascript代码的执行路径.本质上,生成两个怪异的日志,然后可以将其输入diff算法以确定与bug相关的行为开始发散的位置(因为应用程序行为不明显,并且理解并获取实际JS代码的副本)由于必须切换到Web检查器并从Web检查器中复制出许多页面,因此运行起来很困难.所有页面都与Perl代码动态拼接在一起这一事实,其中JS代码的重要部分仅存在于(动态......)Perl字符串).
Chrome中的Web Inspector没有关于记录执行跟踪的选项.基本上我想要的是按执行顺序执行的每一行JS的日志.鉴于JS VM是单线程的,我认为这不是一件难事.问题很简单,现有的面向用户的工具并不是为这么多的核心调试而设计的.如果我们在Dev Tools中查看Profiler,它显然能够提供我需要的那种仪器,但它基本上是为了进行分析而不是跟踪.
我怎么能开始这个?我可以通过某种方式从源代码构建Chrome
我对Chrome的开发方面没有任何经验.那么例如链接到Chrome/Chromium/Canary的dev-builds/branches/versions/distros(有什么区别?)是受欢迎的.
在这一点上,似乎使用强大的js跟踪来检测浏览器仍然比重新设计有缺陷的应用程序更容易.页面的体系结构是一场灾难,但功能很复杂,几乎完全有效.我只需要找到一个缺失的部分.
或者,如果已存在此类工具,我可以搜索哪些其他关键字?"代码追踪"几乎是我唯一可以提出的.
我测试了dynaTrace,这是一个快乐的巧合,因为我们的应用程序支持IE(确实Chrome支持刚刚测试版),但这不会产生文本转储,它基本上产生了一个巨大的 Win32 UI expando-tree,这是不可能的差异.这让我非常难过,因为我知道让跟踪的表现形式显示出来更加困难,但事实证明它几乎完全无用.除了网络应用程序的玩具示例之外,谁会在树视图中上下滚动并查看其中真正有用的任何内容?
我觉得我需要能够将全局npm软件包分别安装到NVM目录中.
$ nvm install v0.11
######################################################################## 100.0%
Now using node v0.11.16
$ node-inspector
Node Inspector v0.9.2
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.
Run Code Online (Sandbox Code Playgroud)
我的节点检查员停止了工作!
$ npm update -g
<bunch of updating, succeeds>
Run Code Online (Sandbox Code Playgroud)
也许这会有所帮助......不!仍然破碎.叹.也许...... node-inspector不适用于v0.11.16(在nvm上运行).也许.谁知道.好吧,是时候中止了.
$ nvm use system
Now using system version of node: v0.10.32.
$ node-inspector --version
dyld: lazy symbol binding failed: Symbol not found: _node_module_register
Referenced from: /usr/local/lib/node_modules/node-inspector/node_modules/ws/build/Release/bufferutil.node
Expected in: dynamic lookup
dyld: Symbol not found: _node_module_register
Referenced from: /usr/local/lib/node_modules/node-inspector/node_modules/ws/build/Release/bufferutil.node
Expected in: dynamic lookup
[1] 93845 trace trap node-inspector --version …Run Code Online (Sandbox Code Playgroud) 我意识到我想做的事情并不安全.但我只是在做一些测试和图像处理,所以我的重点是速度.
现在,这段代码为我提供了32位像素值类型的相应字节.
struct Pixel {
unsigned char b,g,r,a;
};
Run Code Online (Sandbox Code Playgroud)
我想检查一下像素是否低于某个值(例如r, g, b <= 0x10).我想我只想条件测试像素的位和位0x00E0E0E0(我可能有错误的字节顺序)来获得暗像素.
我没有使用这个丑陋的混乱(*((uint32_t*)&pixel))来获取32位无符号整数值,而是认为应该有一种方法让我设置它以便我可以使用pixel.i,同时保持使用引用绿色字节的能力pixel.g.
我可以这样做吗?这不起作用:
struct Pixel {
unsigned char b,g,r,a;
};
union Pixel_u {
Pixel p;
uint32_t bits;
};
Run Code Online (Sandbox Code Playgroud)
我需要编辑我现有的代码来说明pixel.p.g绿色字节.如果我这样做会发生同样的情况
union Pixel {
unsigned char c[4];
uint32_t bits;
};
Run Code Online (Sandbox Code Playgroud)
这也可以工作,但我仍然需要更改所有索引到的内容c,这有点难看,但如果我真的需要,我可以使用宏.
我需要一些简单的例子来开始使用clang.我下载了llvm和clang并构建了:
mkdir llvm-build
cd llvm-build
../llvm/configure
make
Run Code Online (Sandbox Code Playgroud)
我试图从clang示例构建PrintFunctionNames但收到错误消息:
../../../../Makefile.common:61:../../../../Makefile.config:没有这样的文件或目录../../../ .. /Makefile.common:69:/Makefile.rules:没有这样的文件或目录make:*没有规则来制作目标`/Makefile.rules'.停止.
自述文件说只需要make.那么如何构建这个插件呢?
$ node
> "ababaabab".split(/a{2}/)
[ 'abab', 'bab' ]
> "ababaabab".split(/(a){2}/)
[ 'abab', 'a', 'bab' ]
>
Run Code Online (Sandbox Code Playgroud)
所以,这对我来说没有意义.有人可以解释一下吗?我不明白为什么要'a'出现.
注意:我正在尝试匹配双倍的行结尾(可能在Windows文件中),所以我分裂/(\r?\n){2}/.但是我'\015\n'在我的数组中得到了无关的条目(注释\015 == \r).
为什么会出现这些?
注意:也影响浏览器中的JS引擎,因此这特定于JS而不是节点.