我想知道 vim 专家如何在 vim 中使用宏进行日常编码 - 我有很多我经常使用的自定义快捷方式/映射,但还没有遇到任何关于宏的好主意。
它可能是您以前使用过的一个宏,用于极大地简化任务 - 我只需要有关如何在 vim 中有效地使用此功能的想法!
我要在一些(只有几十个)C函数中替换所有出现的特定宏.由于文件长达数千行,在所有函数中有几个宏实例,我想替换当前放置光标的特定函数中的所有实例.我知道VIM提供导航命令(比如[[转到当前函数的开头,然后%找到匹配的右括号),但我无法弄清楚如何使用它们来提出所需的搜索 - 替换命令.有人可以帮忙吗?
我试图从固定格式数据中提取一些字段,如下所示:
G1 = DFF(G2)
Run Code Online (Sandbox Code Playgroud)
假设$ _有上面一行,我想在匹配一个合适的reg exp之后得到G1和G2.我正在使用这个:
if (/(w+)\s*=\s*DFF\((w+)\)/)
{
print "$1, $2";
}
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的打印(什么都不打印,这意味着我的模式是错误的).任何人都可以告诉我我做错了什么(请耐心等待,这是我的第一个perl程序!!)
我主要使用tcsh shell在Linux中编程.默认情况下,我的当前目录是我的代码库的根目录 - 我使用"find"找到我有兴趣修改的文件,然后一旦找到显示文件的位置,我就可以在Vim上编辑/修改.
问题是,由于代码库的大小,每当我要求查找显示文件的位置时,完成搜索至少需要4-5秒,这太短而无法用于其他任何内容!所以,由于速率是添加到代码库的新文件非常小,我正在寻找如下方式:
1)生成代码库中所有文件的列表
2)找到只查看那些位置/文件来回答我的查询
我已经看到如何在cscope中打开文件是快速的,因为它存储以前的文件列表.我想使用相同的查找机制,不是来自cscope窗口,而是来自通用cmd行.
有任何想法吗 ?
我需要查找几个 C 函数的确切字节大小。任何能够分析由 gcc 编译器生成的 .obj 文件的实用程序的任何建议?
我正在使用以下方法尝试列出所有数字因子:
def find_factors(n)
factors = []
2.upto(n-1) {|x| factors << x if n % x == 0}
end
factor = find_factors(24)
puts factor
Run Code Online (Sandbox Code Playgroud)
它打印出以下内容:
2
Run Code Online (Sandbox Code Playgroud)
而不是因素列表!如果做错了怎么办?
我想使用启用了cscope的vim-不幸的是,工作中的二进制文件没有使用cscope支持进行编译,当我尝试从src进行构建时,由于未安装正确的开发包而导致很多错误。
那么,有没有人提供我可以在cscope支持下预编译的二进制文件的链接?顺便说一句,我正在使用linux。
我有以下代码:
void funcA(void* pArg)
{
STRUCTA abc;
.
. // Some processing here
.
if (pArg)
(STRUCTA *)pArg = abc;
}
Run Code Online (Sandbox Code Playgroud)
问题是,这段代码抛出了以下警告:警告:赋值目标不是真正的左值; 这将是一个艰难的错误
如果没有演员阵容,我会再次发出警告,我正试图取消引用无效指针......
由于警告被视为错误,我无法使用此代码 - 但我真的不能使用任何其他指针类型而不是void*作为参数.我缺少一个优雅的解决方案吗?
有没有办法让这项工作?
当我运行以下代码时:
range = [2,3,4,5,6,7,8,9,10]
range.each {|z| print z, " "}
puts "\n"
range.map! {|y| y /= 3 if y % 3 == 0}
range.each {|z| print z, " "}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
2 3 4 5 6 7 8 9 10
nil 1 nil nil 2 nil nil 3 nil
Run Code Online (Sandbox Code Playgroud)
而我期望第二行输出包含:
2 1 4 5 2 7 8 3 10
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我是否误解了map运算符的方式以及它的相关代码块应该如何工作?
注意:我在C/C++中进行了多年的编程后学习Ruby,这是我一直坚持使用的非工作Ruby程序的最小片段.如果需要,我可以粘贴原始程序我也构建了这个MWE.