Vim 将标记行替换为选定行
有可能做到以上几点吗 我通常以相同的方式编写所有软件(省略TDD部分):Vim 将标记行替换为选定行,vim,Vim,有可能做到以上几点吗 我通常以相同的方式编写所有软件(省略TDD部分): 迭代伪代码,直到它足够细粒度,每个部分都可以在20分钟内编写 实现每个“伪”组件 人为的例子: # Get file # Open file # Verify integrity # Parse # Close file 为了鼓励模块化,我通常不在“一”块中编写这些函数。我将它们写在单独的文件或至少单独的块中,然后“粘贴”它们。这是为了确保不鼓励我添加不必要的依赖项。现在,我正在复制->移动到伪代码行->用代码块、函数或
# Get file
# Open file
# Verify integrity
# Parse
# Close file
为了鼓励模块化,我通常不在“一”块中编写这些函数。我将它们写在单独的文件或至少单独的块中,然后“粘贴”它们。这是为了确保不鼓励我添加不必要的依赖项。现在,我正在复制->移动到伪代码行->用代码块、函数或方法名或任何副本表示的内容粘贴到它上面。这对我来说非常有效,代码也很好。然而,由于懒惰,我不想触摸鼠标或做太多,如果有一种方法可以用更少的努力来做。
我正在寻找一种方法来选择->复制->用所选代码替换伪代码行:
在Parse.c文件中:
int ParseMyFile(char* fileName)
{
# Get file
return 0;
}
然后,我会将#Get file写入另一个文件或缓冲区:
{GetFileSomehow}
作为下一步,我希望只标记这段代码,并替换#Get file
使用要生成的块:
int ParseMyFile(char* fileName)
{
{GetFileSomehow}
return 0;
}
我试着用标记复制粘贴到标记上,但效果不够好。我复制了->移动到标记->替换行。我很想把这个记录下来,复制->替换。
我不能下载扩展。我只能使用标准Vim。
它必须比物理标记块、导航到正确的伪线并粘贴它要省力。这听起来可能不是很多工作,但我编写的代码即使是非常小的代码块,也只有2-3行,如果这有助于我对代码进行推理的话。它会累加起来。在剪贴板中找到要替换的文本后,您可以执行以下操作:
:.s/#.*/\=@+
. ............. current line
#.* ........... starting at this point
\=@+ .......... beloved vim replace using the clipboard
要跳回onece,我们可以:
:%s/#.*/\=@+/ | exec "normal! \<c-o>"
:%s/#.*/\=@+/|执行“正常!”
在剪贴板中找到要替换的文本后,可以执行以下操作:
:.s/#.*/\=@+
. ............. current line
#.* ........... starting at this point
\=@+ .......... beloved vim replace using the clipboard
要跳回onece,我们可以:
:%s/#.*/\=@+/ | exec "normal! \<c-o>"
:%s/#.*/\=@+/|执行“正常!”
我的尝试:
标记好要替换的行后(在本例中,使用标记a
)。
选择要复制的文本,然后输入:
:'<,'>y | norm!'aVp``
:”我的尝试:
标记好要替换的行后(在本例中,使用标记a
)。
选择要复制的文本,然后输入:
:'<,'>y | norm!'aVp``
<代码>:'<代码>:R>代码>代码>读取/>代码>命令将文件的内容读入光标位置…可能有帮助。考虑使用堆栈交换来对VIM提出问题。在这里重新张贴:难道你不能用可视化的线模式来标记要替换的行(<代码> Shift +V< /代码>)然后通过p
?这正是我试图避免的。这就是我目前正在做的。我想在视觉模式下标记我要复制的内容,并让它自动粘贴和替换给定的标签(例如,使用标记实现)。这里有:r
(:read
)命令读取一个文件的内容到光标位置…可能有帮助吗?考虑使用堆栈交换在VIM上的问题。在这里重新张贴:你不能只是用可视化的线模式来标记要替换的行(<代码> Shift +V)然后通过p
?这正是我试图避免的。这就是我目前正在做的。我想在视觉模式下标记我要复制的内容,并让它自动粘贴和替换给定的标签(例如,使用标记实现)。你能提供一个工作示例吗?我很难看出这不涉及我的光标位置或我必须主动写入该行。你是否建议我编写一个带有标记作为参数的宏/函数?附加说明:要从vim寄存器粘贴,请将'\=@'中的'+'更改为寄存器id。例如:':s/\.*/\=@a'要粘贴寄存器“a”的内容。若要跳回,可以使用Ctrl-o
您能提供一个工作示例吗?我很难看出这不涉及光标位置或我必须主动写入该行。您是否建议我编写一个宏/函数,并将该标记作为参数?附加说明:要从vim寄存器粘贴,chang将'\=@+'中的'+'添加到寄存器id。例如:':s/\*/\=@a'粘贴寄存器'a'的内容。要向后跳转,可以使用Ctrl-o