我正在寻找一个关于vi/vim上的“粘贴”问题的解决方案。
如何连接文本文件中的特定行?我有这样的档案:
15/10/2011 Revolution day
16/10/2011 About Rome
- differents newspapers
blogs an feeds
:) hp
17/10/2011 Yep, another day
我想粘贴所有不以数字开头的行。我试过这样的方法,但不管用:
:[!^[0-9]]!paste -d ' ' -s
我想要创建一个过滤器文件夹,最好在.vim中运行一个文本过滤器,只需一个文件名:!filter.pl
我安装了一个Perl文本过滤器来更改LaTeX数学公式中的所有特殊字符,到目前为止,它只运行在整行(而不是所选的公式)上的问题,但是我可以忍受它。
#!/usr/bin/perl -np
use strict;
use warnings;
# this filter transforms all special characters in Mathformular for LaTeX
s/\\/\\backslash /g;
s/([\$\#&%_{}])/\\$1/g;
但是调
有没有办法定义一个字符串换行符,在vim中逐字。简而言之,我正在寻找的是与以下bash命令等效的vim
printf "
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
* File Name :
* Last Modified :
* Created By :
_._._._._._._._._._._._._._._._._._._._._.*/
"
我可以这样做:(a)单独打印每一行,(b)将"^M“添加到每一行,(c)使用:r从文件中读取文本,所有这些都有点麻烦。在vim中有没有像bash的printf这样干净的方法
我在一个文件中有以下文本:
a line
another line
new line
我正在尝试替换多个回车,并以一个回车代替他们。我正在尝试以下代码:
:%s/\v\n*/\r/g
然而,尽管上面的代码将多行空白行替换为一行,但它也会导致在每个字母之后添加回车:
a
l
i
n
e
a
n
o
t
h
e
r
l
i
n
e
n
e
w
l
i
n
e
为什么会发生这种情况?
我想净化诗歌文本,下面是示例:(使用code标记更好地看到隐藏字符):
მეორდება ისტორია,
დღევანდელს ჰგავს გარდასული, რახან ბევრი გვიცხოვრია, ნუთუ დგება დასსარული?!
არა! არ თქვა დავბერდითო, ნუ მაჯერებ, რაც არ მჯერა, არ მწამს სიტყვა ავბედითი, რომ ჩამძახონ ათასჯერაც!
我试过:
function sanitize(txt)
{
txt = txt.replace(/\s+\n/g
我想匹配任何行开始一些任意数目的星号,然后是一个空白和一些文本。例如:
** some text
这就是我要用的:
/(\A\**)\ (.*)/
这很好,但行以空格开头的情况除外。正如您在中看到的,空格是第一个匹配组,星号和文本是第二个。我所有修复它的尝试最终都与其他非星号字符相匹配。做这件事的正确方法是什么?
编辑:我不清楚:如果行以空格开头,我希望比赛失败。
我决定学习更多关于vim及其语法突出显示的知识。使用其他示例,我正在为Markdown创建自己的语法文件。我见过,它也有这个问题。我的问题在列表项和代码块高亮显示之间。
代码块
第一行为空白
第二行以至少4个空格或1个制表符开头。
块用空行完成。
示例:
Regular text
this is code, monospaced and left untouched by markdown
another line of code
Regular Text
代码块的Vim语法:
syn match mkdCodeBlock /\(\s\{4,}\|\
当我将代码粘贴到Mac终端窗口的vim中时,它会缩进每一行。对于每一行,它添加一个缩进,所以文本看起来像这样...
"ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nu
正如你所看到的,每一行都有2或3位数字,我想在vim中删除它们。
Ruby 19
C++ 30
Pacal 15
Basic 106
PHP 112
Javascript 353
...
我尝试了以下方法,但不起作用。
$ # to the end of line
C-v # visual mode
G # to select up to the end of line
d # delete
我如何在vim中实现这一点?
我正在尝试将这个正则表达式从崇高的文本转换为一个我可以在vim中使用的正则表达式:(?<![>\w\d])(42|45|21)\s(?!days)
我想匹配42,45和21,如果它们不是立即由一个<,一个单词字符,或一个数字,而不是后面的单词天。
例如,我想在以下内容中找到42:This is a reference to chapter 42 in the book.
但不是这个:This is a reference to chapter <a href="#">42</a>.
或者这个:This is a reference to
在vim中对文档进行单词包装的最佳方法是什么?
我想让每一行包装在80个字符,不只是视觉包装,但输入一个换行符。
我通过使用
:set wrap
:set linebreak
但是,如果我返回并在前面的一行中插入文本,它将不会调整该段的其余部分。它接受溢出文本并将其放在换行符上,但后面的行不会向上移动以填补空白。
因此,如果我编辑前一行,我的段落可以如下所示
A line that is 80 characters long
short line
A line that is 80 characters lone
我想要这样:
A line that is 80 characters lon
我有一个包含大约2,000行文本的文本文件,我想删除每一行文本的很大一部分。
案文采用这种格式:
Important Text that I care about. Stuff I want to delete
我对vim非常陌生,并且一直在阅读一些有关vim命令的手册,但是我仍然不知道如何删除“vim命令”之后的所有文本。每一行。
有人能给我一个快速的命令来做这个吗?
谢谢
在Vim中,我可以像这样输入一行:
- When in the Course of human events it becomes necessary for one people
to dissolve the political bands which have connected them with another
...
Vim将对文本进行换行,使其与破折号的右侧对齐。但是如果我用星号试一下,结果是这样的:
* When in the Course of human events it becomes necessary for one people
to dissolve t