PSPS :( 一个预先编写脚本的脚本)
刚刚想到一个更有先见之明的问题包括以下概念:这是否为零值整数的非显示"0x"(showbase)是标准行为,或者这只是我的MinGW实施的一个怪癖?
这一切都是在一个愉快的星期天早上开始的......我想以十六进制表示形式转储一些Handles,并采用一致的格式化方式.
我想要一个前导0x和一个固定宽度,但事实证明这是使用预期的流操纵器难以捉摸的.
我发现这样做的唯一方法是将Handles强制转换为unsigned long.这似乎有点不合理,我希望我不是唯一一个想要这个的人......
我在标准六角形机械手中遗漏了什么?是因为类型void*(HANDLE)只是在ostream的正常十六进制处理之外定义?
总结:我不想将HANDLE强制转换为不是的东西.
我不想硬编码"0x"前缀.有没有办法使用标准操纵器?还是我需要重载ostream对HANDLE的处理?(但这可能使我超负荷!)
这是我的测试代码(及其输出).
我用过'.' 作为填充字符,为清楚起见,(我实际上将使用'0')
HANDLE h;
ULONG ul;
int iH = sizeof(h); // how many bytes to this void* type.
int iW = iH*2; // the max number of hex digits (width).
int iW2= iW+2; // the max number of hex digits (+ 2 for showbase "0x").
int iX = 4; // the number of bits per hex digit.
int …Run Code Online (Sandbox Code Playgroud) 有时我想在一行(//)或一行上完全左对齐临时注释/* */.但是,CC Mode在键入第二个键时通过自动缩进来覆盖它.一般来说,我喜欢关键字等的自动缩进,但我更希望它被禁用以进行评论.(更新:即.我想禁用c-electric -key-bindings 触发注释缩进的方式,但注释仍应正常缩进)
我已尝试将这些行放入.emacs,但它不会阻止这种行为.
(c-electric-slash nil)
(c-electric-star nil)
Run Code Online (Sandbox Code Playgroud) 这个"简单"问题似乎充满了侧面问题.
例如.新进程是否打开了多个窗口; 它有闪屏吗?
有一个简单的方法吗?(我正在开始一个新的Notepad ++实例)
...
std::tstring tstrNotepad_exe = tstrProgramFiles + _T("\\Notepad++\\notepad++.exe");
SHELLEXECUTEINFO SEI={0};
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.hwnd = hWndMe; // This app's window handle
sei.lpVerb = _T("open");
sei.lpFile = tstrNotepad_exe.c_str();
sei.lpParameters = _T(" -multiInst -noPlugins -nosession -notabbar ";
sei.lpDirectory = NULL;
sei.nShow = SW_SHOW;
sei.hInstApp = NULL;
if( ShellExecuteEx(&sei) )
{ // I have sei.hProcess, but how best to utilize it from here?
}
...
Run Code Online (Sandbox Code Playgroud) 使用EnumWindows的和GetWindowText时,我看到"M"和'默认IME’很多头衔.
什么是它们的主要功能?..这似乎有什么东西相当的基础.
是否有Linux命令行应用程序将比较两个二进制文件并在第一次不匹配时退出?
cmp 似乎没有退出选择.
我打算在按RET时为每个提示使用bm.el Visible Bookmarks.我已经设法在某种程度上实现了这一点.如果缺少一些重要问题,请在下面评论我的代码:例如.我不知道我是否需要处理args而不仅仅是将它们传递给默认函数.
当我在空命令行上按RET时,我不想为该行添加书签.在将contol传递给默认函数之前,如何拦截命令行内容eshell-send-input?
(defun eshell-send-input-zAp (&optional use-region queue-p no-newline)
"eshell-send-input, customized to add bm-bookmark to prompt line"
(interactive)
(bm-bookmark-add)
(eshell-send-input use-region queue-p no-newline))
(add-hook 'eshell-mode-hook
#'(lambda ()
(define-key eshell-mode-map
[return]
'eshell-send-input-zAp)))
Run Code Online (Sandbox Code Playgroud) 使用elisp(不是交互式键和弦),如何在emacs终端仿真器中运行命令;以及如何将按键发送到该缓冲区?
开始term似乎需要(term "/bin/bash"),它没有运行命令的范围。我认为这可能是因为术语旨在作为一种交互式工具...
我也想发送特定的密钥到正在运行的应用程序。可以做到这一点。我以为(insert'x)可以工作,但是它没有缓冲区参数,也不允许M- C- S- s-
mplayer工具(midentify)输出"shell-ready"行,用于由bash/sh /任何解释器进行评估.
如何将这些var-names作为emacs中的elisp var-names分配给相应的值?数据以字符串形式(通过shell-command-to-string)
这是数据
ID_AUDIO_ID=0
ID_FILENAME=/home/axiom/abc.wav
ID_DEMUXER=audio
ID_AUDIO_FORMAT=1
ID_AUDIO_BITRATE=512000
ID_AUDIO_RATE=0
ID_AUDIO_NCH=1
ID_LENGTH=3207.00
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_AUDIO_BITRATE=512000
ID_AUDIO_RATE=32000
ID_AUDIO_NCH=1
ID_AUDIO_CODEC=pcm
ID_EXIT=EOF
Run Code Online (Sandbox Code Playgroud) 我需要在我的 emacs 术语中检查进程是否仍在运行;开始通过(term "/bin/bsh"),然后重命名为,例如。term-A.
我试过(term-check-proc "term-A"),但它没有显示我需要什么,或者至少,我不知道如何使用它。
ps afx如果有多个emacs term活动并运行相同的程序,试图通过 shell 调用(或类似的)来追踪它是有问题的(在我的情况下,这很有可能)......
我真的需要知道,如果一个进程在特定的Emacs长期缓冲,term-A,正在运行或不。
我正在尝试解析一些\x00空分隔的数据.我认为在一个-pe/-ne循环中,$_相当于.*替换正则表达式的模式匹配方...但是正如我的例子所示,它们不一样......
# ???? works, but is not a regex
printf 'aaa\n\0bbb\n\0' | perl -ne 'BEGIN{ $/="\0"; }; s/$_/\"$.$&\"/ and print;' |xxd
printf 'aaa\n\0bbb\n\0' | perl -ne 'BEGIN{ $/="\0"; }; s/.*/\"$.$&\"/ and print;' |xxd
# ??__ gives un-expected output
# output # ? ?
0000000: 2231 6161 610a 0022 2232 6262 620a 0022 "1aaa..""2bbb.."
0000000: 2231 6161 6122 0a00 2232 6262 6222 0a00 "1aaa".."2bbb"..
# ? ?
Run Code Online (Sandbox Code Playgroud)
获得一种s/ / /替代品来识别全部需要$_ …
我正在使用没有完整功能的MinGW.例如.它没有wchar_t流支持.我已经设法通过编写一组迷你操纵器(下面的代码中的wcusT())来解决这个问题.但是我发现我再次遇到了GetModuleFileNameEx.我无法原生运行GetModuleFileNameEx()此函数已定义<psapi.h>,但似乎没有任何内容可以链接到.这是我的第一个问题:可以/确实/是MinGW能够运行GetModuleFileNameEx吗?我需要做什么?我错过了一些简单的事吗?作为一种解决方法,我试图通过调用它在Windows system32文件夹中的dll(psapi.dll)来间接运行它......但是出了点问题.我还有另一个禁区.我对以下代码的任何评论表示感谢..谢谢
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
{ /// typedef and load a dll function
/// ===============================
typedef DWORD (__stdcall *foo)(HANDLE, HMODULE, LPTSTR, DWORD);
LPTSTR ptcPSAPI_DLL = _T("C:\\WINDOWS\\system32\\psapi.dll");
HMODULE hPSAPI_DLL = LoadLibrary(ptcPSAPI_DLL);
if( !hPSAPI_DLL )
{ std::cout<<"ERROR: Failed to load "<<wcusT(ptcPSAPI_DLL)<<std::endl;
return 1;
}
foo GetModFnEx=(foo)GetProcAddress(hPSAPI_DLL,
#ifdef UNICODE
"GetModuleFileNameExW");
#else
"GetModuleFileNameExA");
#endif
/// call the dll library function
/// =============================
HWND hWndNPP = FindWindow(_T("Notepad++"),NULL); // the window calass name
TCHAR ytcMFqFn[FILENAME_MAX]; // …Run Code Online (Sandbox Code Playgroud) emacs ×5
c++ ×4
elisp ×4
command-line ×2
linux ×2
process ×2
binary ×1
compare ×1
dll ×1
eshell ×1
formatting ×1
handle ×1
indentation ×1
manipulators ×1
mode ×1
perl ×1
regex ×1
stream ×1
substitution ×1
term ×1
title ×1
unix ×1
window ×1