我希望在vi编辑器中只看到first 5 lines after the match found。什么是命令?
我只知道这些命令
/Incident Id:给出了从头到尾的所有行
:g/Incident ID:只给出隐藏所有不匹配的匹配字
但是如何在找到匹配词后显示前5行.?
具有预期输出的示例:
我有8行文字,我搜索事件ID
Incident ID: 1392875740716 <<<Match word here
URL: /Project/jsps/ErrorPage.jsp
java.lang.NullPointerException
我知道如何突出长队。要么是:
:match ErrorMsg '\%>140v.\+'
我更喜欢“色柱法”:
:set colorcolumn=140
因此,例如,案文:
Vim是由B.Moolenaar编写的文本编辑器,于1991年首次公开发行。它基于类Unix系统常用的vi编辑器。Vim是免费的开源软件。
以"Vim是免费的,等…“开头突出显示。
但是,对于一个段落(在本例中为3行),如何实现相同的结果,例如:
[Empty line]
Vim is a text editor written by B. Moolenaar and first rel
我目前正在编写一个perl脚本,用于从日志文件中提取数据,并使用新文件中的数据创建语句。
在这个新文件中,我在这里提取和使用的一个特定数据是操作系统的版本。它显示了Windows XP Service Pack 3^M。我注意到这个^M只在我使用vi进行编辑时才会出现。当我通常使用命令提示符或PuTTy和more显示文件的内容时,它只显示Windows XP Service Pack 3。
有人能解释或给我提供一个关于为什么会有^M的链接吗?我在谷歌搜索上什么都没找到。我只知道它在Windows和Unix或Linux操作系统之间有关系。
我有一个由windows系统生成的CSV文件。然后将该文件移动到linux。linux环境是NAME="Red Hat Enterprise Linux Server".VERSION="7.3 (Maipo)".ID="rhel“。
当我使用vi编辑器时,所有的字符都是可见的。例如,给出了一行:"Sarah--bitte nicht löschen“。
但是当我猫文件时,我得到类似于"Sarah--bitte nicht l▒schen“之类的东西。
此文件由数据存储应用程序使用,并且此unicode字符为"?“在数据存储中。由
我知道这个问题是以不同的方式提出和回答的。但我的重点是为什么sed没有像我所期望的vi那样表现。
对于给定的线程转储文件,我需要在“锁定拥有的同步程序”的每一行之前删除换行符,如下所示。
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at j
例如:
1: if doc.text =~ /test/
2: content = doc.xpath('shoud be replaced') // this string in quotes will be replaced with `vi'p`
3: end
4: /html/body/table[3]/tbody/tr/td[5] // dd this line
步骤:dd第4行并跳至第2行,然后执行vi'p
如果我dd第4行并粘贴,将引号中的字符串替换为第2行,该行将包含换行符和空格,如下所示:
1:
丢失了一些源代码,我忘记了我以前是如何工作的。
我有一个Feed.java类,它加载自定义列表视图,如本文所示:
public class Feed extends Fragment {
// All static variables
static final String URL = "=========================";
// XML node keys
static final String KEY_SONG = "song"; // parent node
static final String KEY
如果没有在我的Linux系统上安装Emacs,Bash命令行编辑默认模式仍然是Emacs。在没有Emacs的情况下,这是如何工作的?
我试着搜索Bash源代码,但还是无法理解。Bash是否将Emacs集成在自己的内部?
$ set -o
allexport off
braceexpand on
emacs on
: :
vi off
xtrace off
我有两个长度相同的字符串列表,但是当我将它们写到文件中每一项出现在文件中的不同行时,它们的长度与文件不匹配:
print len(x)
print len(y)
317858
317858
但是,当我将列表中的每一项写入文本文件时:文本文件中的行数与列表的长度不匹配。
with open('a.txt', 'wb') as f:
for i in x[:222500]:
print >> f, i
在linux中,wc -l a.txt提供了222499,这是正确的。
with open('b.txt', &
我最近在我的机器上升级到Fedora 33 (Linux5.9.16-200)。我正在运行vim增强版本8.2。当我输入sudo vim (甚至sudo vi)来编辑具有管理权限的文件时,我会得到以下错误。
sudo: __vi_internal_vim_alias: command not found
我不知道是什么原因造成了这种情况。没有sudo的情况下,Vim装载很好。你能告诉我如何解决这个问题吗?谢谢。
更新:在执行which vim时,我得到以下结果。
alias vim='__vi_internal_vim_alias'
__vi_internal_vim_
假设我有一个名为filename123.txt的文件,并且它是命名为so的单个文件,我可以使用命令locate filename123将其命名为locate。它只返回这个文件。
现在我想用vi/vim打开它。但是我不想去那个位置,然后键入vi命令,然后是文件名。这里,我希望将locate filename123的结果附加到vi命令中。我怎样才能做到呢?我已经试过了
locate filename123 | vi
但这行不通。这个错误出现在终端中:
santosh@santosh:~$ locate filename123 | vi
Vim: Warning: Input is not from
以下命令起作用
$ ls -1t | head -1
git_sync_log20180924_00.txt
$ vi git_sync_log20180924_00.txt
但这不是
$ ls -1t | head -1 | vi
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: preserving files...
Vim: Finished.
如何做到这一点(在vi中打开最近修改过的文件)?