是否可以使用:%s在某一行中查找匹配项,然后将其附加到该行中?
以下面的字符串为例,我以为像:s/\(value\)/\$\1/这样的代码会将value附加到行尾,但它只是在value内联之前添加了$
Demo字符串:
This value is too damn high!
预期输出:
This is too damn high!value
实际输出:
This $value is too damn high!
vim可以识别以行开头或仅跟在空格字符之后的注释,如下图所示。
// This is recognized as a comment by vim.
// Pressing <Enter> continues the comment on the next line.
{
// vim will also automatically format these comments if they exceed textwidth
// characters in length.
}
但是,当注释跟在代码后面时,vim似乎无法识别它,从而无法在下面的代码行中添加注释前导。
DoS
文件是
当我使用cat -A drug-disease_TTD2013.txt时,它会在每一行的末尾显示^M$。在vim中,set list和它只显示了没有^M的$。
sed 's/\r//' drug-disease_TTD2013.txt >1.t可以让它变得一样。但我不知道为什么?(订正)
同样在“猫手册”中:-v use ^ and M- notation, except for LFD and TAB,这意味着什么?
中的情况不同
谢谢。
我使用的是Ubuntu Linux 10.04。我使用vim进行大部分开发,使用CodeBlocks进行调试。当我第一次从Windows迁移到Linux时,我注意到vim为换行符显示^Ms,并发现这是Microsoft的问题。但是,即使在删除它们之后,我也注意到它们有时会重新出现在文件中(我想是在CodeBlocks中编辑的文件?)。
我的分析正确吗?我该如何解决这个问题呢?
我想删除光标当前结束后的文本。例如。
The quick brown fox jumps over the lazy dog
^ the cursor is here
The quick
^ the desired result
eD非常接近我想要完成的任务,但是它也删除了光标已经结束的字符。<C-U>做了精确的工作,但从光标到行的开头。有什么组合做同样的前进吗?
除了创建另一个键映射之外,还有其他方法来完成这个任务吗?在vim中有相当多的捷径,所以避免创建另一个将是很好的。
我已经开始为一个项目做Opencl了。我想使用我最喜欢的编辑器vim进行开发,并从vim.org下载了一个opencl.vim文件,并将其放在vim的语法目录中。
当我试图打开任何.cl文件时,我从vim中得到这个错误。有人能帮我一下吗:
Error detected while processing /usr/share/vim/vim72/syntax/opencl.vim:
line 5:
E492: Not an editor command: ^M
line 6:
E15: Invalid expression: version < 600^M
line 159:
我在x86_64 GNU/Linux上运行IBAMR模型(一组用于解决沉浸式边界问题的代码)。启动配置文件名为input2d。当我用vi打开它时,我发现:
"input2d“插头251L,11689C
如果我编译IBAMR模型而不保存input2d,它将编译并运行良好。但是,如果我保存input2d,编译器就会崩溃,并说:
Warning in input2d at line 251 column 5 : Illegal character token in input
显然,这与unix在文件末尾添加换行符有关。这是我的问题:在unix系统上,如何在vi中以dos格式保存此文件,并且
并非Vim中的每个命令都允许您添加行尾注释。有时候,"作为一个参数是有效的,所以它是不明确的。但是,,,如果插入管道,则命令结束,您可以插入注释。因此,您实际上可以在vim中实现可靠的行尾注释:
noremap ' ` |" Use single quote as alternate range key
很干净,对吧?但是syntax/vim.vim文件不承认这是行注释的结尾。我如何告诉Vim识别这个语法?
我在syntax/vim.vim里找到了这个
syn match vimLineComment +^[ \t:]*".*$+ contains=@v
我在~/.cache/jhbuild/build/<project>里面
我使用以下命令生成了标记:
$ make ctags
如果我运行
$ vim -t main
我得到了
E433: No hay archivo de etiquetas
E426: No se encontró la etiqueta: main
但是正在做(停用vim的所有配置):
$ vim -u NONE -t main
vim正确打开带有main标签的文件。
我可以找到这种行为的罪魁祸首,但我发现了一些奇怪的东西:
在启用了所有插件的情况下,目录自动完成功能不适用于此目录的路径
:e /home/a
有什么方法可以告诉vim在新行中格式化括号吗?
例如:
public class Foo {
private Foo(int a) {
if (a > 30) {
// do stuff
}
for (int i = 0; i < a; i++) {
// more stuff
}
}
}
应成为:
public class Foo
{
private Foo(int a)
{
if (a > 30)
我正在VMBox上运行Ubuntu20.04,并试图最大限度地利用Vim。因此,我按照下面的指南安装不同的插件,从gruvbox开始。不幸的是,gruvbox和任何其他插件都不起作用,尽管我遵循了这封信的指南。下面是我的主文件夹中的.vimrc文件:
call plug#begin()
" This is where we will add plugins to install
Plug 'morhetz/gruvbox'
call plug#end()
colorscheme gruvbox
以下是错误消息:
Error detected while proce
我正在运行Vim8.0.124,并且已经安装了在我的Python和Django开发中使用的插件。我按照说明创建了一个包含以下内容的.vimrc文件:
# ~/.vimrc
set nocompatible " Required by Vundle
filetype off " Required by Vundle
" Begin Vundle settings ==========================================================
"
set rtp+=~/.vim/bundle