Questions tagged «command-line»

有关前命令或冒号命令的问题。对于用于启动编辑器的命令行选项的问题,请使用[invocation]标记。

4
如何从标准输入中编辑内容?
我想在vim中编辑从命令行动态生成的内容,而没有文件。 例如: $ echo This is example. | vim /dev/stdin $ cat /etc/hosts | vim /dev/stdin 但是失败并显示以下错误: Vim:警告:输入不是来自终端 Vim:读取输入错误,正在退出... 有可能实现吗?


2
如何在:命令中转义整个字符串?
让我们来看看。我gvim正在跑步,我想打开一个文件,遵守autocmd s(排除--remote-tab)。 现在我知道我可以做(基本上是通过一些调整): gvim --remote-send ":tabe my_file<CR>" 哪个有效。但是,如果文件中包含空格或奇怪的字符,则必须执行以下操作: gvim --remote-send ":tabe my\\ file<CR>" (双重\\是因为其中一个被外壳吃掉了;这等效于手动键入 `:tabe my\ file` 在vim它的作品)。现在,我可以找到一种在shell或其他东西中创建该字符串的方法,但是我希望可以在“:tabe”命令中对该字符串进行“全局引用”,例如 gvim --remote-send ":tabe 'my file'<CR>" 要么 gvim --remote-send ":tabe \"my file\"<CR>" ---等同于直接在vim命令行中编写:tabe "my file";似乎没有用。我可以用Shell显式引用字符串中的所有空格,例如 # <ESC> because the gvim instance can be in a mode different from normal # the double CR: …

3
vim不显示正在键入的命令
我正在阅读vimtutor,在第2.1课中,有关于键入dw之类命令的注释: NOTE: The letter d will appear on the last line of the screen as you type it. Vim is waiting for you to type w . If you see another character than d you typed something wrong; press <ESC> and start over. 但是在vim或gvim中都看不到我在命令行中键入的命令。我该如何解决?

7
如何在vim中搜索与当前行匹配的行
我通常使用来搜索单词:/string,但是如果必须搜索整个当前行,该怎么做。 event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 例如,if cursor目前在line 1如何类似于:/包含整个当前行的文本的搜索中。光标应跳到匹配line 4,然后再跳到line 7

1
如何使用反引号扩展来填充arglist?
来自帮助:help backtick-expansion: On Unix and a few other systems you can also use backticks for the file name argument, for example: :next `find . -name ver\\*.c -print` :view `ls -t *.patch \| head -n1` The backslashes before the star are required to prevent the shell from expanding "ver*.c" prior to …

3
使命令行模式键入<Esc>和Ctrl命令
假设您要引用以下单词。如果|光标位置是您,则可以cw""&lt;Esc&gt;P从普通模式轻松引用该单词。 |below 我想在命令行模式下实现相同的行为。我的问题是我该如何对命令行模式说我要输入&lt;Esc&gt;。我想:norm cw""&lt;Esc&gt;P和其他一些变化,但我刚刚得到""&lt;Esc&gt;P的不是"below"。 仍然与此相关,我想知道如何使命令行模式键入Ctrl命令。例如,我可以cw"&lt;C-r&gt;""&lt;Esc&gt;改为引用上述单词。但是然后我需要命令行为&lt;C-r&gt;我输入。我怎样才能做到这一点?

2
部分路径的类似Zsh的制表符完成
与Vim中文件名的类似Bash的部分制表符完整相关 的真正奇妙功能之一zsh就是您可以键入,例如ls /u/s/m/m/who.1,按Tab并完成输入 ls /usr/share/man/man1/who.1.gz。一旦习惯了,回到真的很烦/u&lt;tab&gt;/s&lt;tab&gt;/m&lt;tab&gt;/m&lt;tab&gt;...,特别是当整个部分路径只能解析为一条实际路径,但是每个单独的组件可能有多个补全时。例如在使用:e或时,可以在Vim中实现:cd吗? zsh中还有其他与路径有关的有用功能,例如用于使用替换cd foo bar为的等效路径(即变为)。如果有一个解决方案也可以引入这些(本质上是将与shell相关的任务移交给可以很好地完成这些任务的shell),那将是很好的。foobar/blah/foo/baz/yada/blah/bar/baz/yada


2
在cmdline上自动完成选项值
我无法计算尝试执行此操作的次数: :set foldmethod=syn^I 似乎完成对选项值不起作用! 在某些情况下,选项是复杂的字符串,其中补全可能没有意义。(例如'comments'。) 但是,是否有任何努力为常见用例提供通配符完成功能? 如果没有,我如何使上面的示例起作用?(假设我想完成其中一个字符串['manual', 'indent', 'expr', 'marker', 'syntax']。)

1
如何用多行替代?
我想在多行中插入一个单词,是否有类似的命令 :[2,3,5,7,11]s/^/word\ /g 哪个会插入word第2行,第3行,第5行,第7行和第11行的开头? 在这里,多行不连续。

4
在命令行中显示当前版本的文件名
如何在命令行中显示当前文件的路径,以键入类似的文件名?我不想用当前文件名代替缩写,我想编辑文件名以及其目录路径。例如,我想要:edit一个具有相似名称或相似目录的文件,例如 vim src/submodule/frontend/frobnicate2.c 现在我要编辑../trunk/src/submodule/frontend/frobnicate.c,而我只想插入../trunk和删除2,而不是重新输入完​​整路径。 我当然可以回到shell并使用其命令历史记录,或者可以通过GUI复制粘贴路径,但是我正在寻找一种不需要离开Vim的更有效的方法。

2
如何以vi方式使用命令行模式?
在始终保持原始位置的情况下,是否可以与命令行模式进行交互? 特别地,以下两个操作很麻烦,需要将手指移至箭头键,有时更糟的是鼠标。 四处走动:是否有一种方法可以在命令行模式下在往常位置上来回移动? 如何在命令行上复制和粘贴?我的意思是将两者都从命令行本身的一部分复制到另一部分,或者从文本甚至剪贴板复制。

2
如何从命令行将整个缓冲区写入标准输出?
我想将整个缓冲区/dev/stdout而不是文件写入标准输出(),并且以下命令在编辑文件时按预期工作: :w &gt;&gt; /dev/stdout 提示:按Control+ L刷新屏幕。 但是,当我尝试从命令行(非交互式)执行相同操作时,它无法按预期工作,例如: $ echo This is example. | vim - '+:w &gt;&gt; /dev/stdout' '+:q!' Vim: Reading from stdin... 与同:w !tee,:x! /dev/stdout,:%print和类似的。 退出之前,这是说:[Device] 1L, 17C appended。 有什么办法迫使vim在管道中间将标准输入写入标准输出?也许以某种方式缓冲了吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.