我有一些被这个符号损坏的文件:
^@
它不是字符串的一部分;它不可搜索。我如何用空替换这个符号,或者我如何删除这个符号?
这是一个文件中的示例行:
^@F^@i^@l^@e^@n^@a^@m^@e^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@ ^@:^@ ^@^M^@
Run Code Online (Sandbox Code Playgroud) 我使用 vim 来编辑文件。有时,我忘记拥有适当的权限。我将 vim 和文件作为只读文件运行。我可以进行更改,但我实际上无法编写更改。每隔一段时间,我最终会打开一个文件并对其进行更改,意识到我没有在 sudo 中运行它,对自己尖叫,然后强制退出并以 root 用户身份再次打开它。
有解决方法吗?尽管文件处于只读状态,我是否可以强制更改文件?我至少可以保存更改,运行差异并将文件合并在一起吗?
所以我通常会发现自己将文本从一个点复制到另一个点,同时覆盖粘贴新文本的旧文本:
blah1
newtext
blah2
wrong1
blah3
wrong2
blah4
Run Code Online (Sandbox Code Playgroud)
假设我对它进行了视觉标记newtext
和y
ank。现在我选择wrong1
(可以是任何东西,不一定只是一个词)并p
品尝newtext
. 但是,如果我现在wrong2
对它做同样的事情,它将被替换wrong1
为newtext
。
那么如何防止缓冲区中的文本与我当前正在覆盖的文本交换?
尽管我非常喜欢 reigister 建议(我想我将开始更多地使用寄存器,现在我发现了该:dis
命令),但我将修改jinfield的答案,因为我不使用交换模式。
vnoremap p "0p
vnoremap P "0P
vnoremap y "0y
vnoremap d "0d
Run Code Online (Sandbox Code Playgroud)
完美地做到了这一点。
我太快了;romainl的解决方案正是我正在寻找的,没有Edit 1 中的黑客。
其实,vnoremap p "_dP
够了!
所以,改变接受的答案。
VIM (gvim/macvim) 在哪里保存未保存/未命名缓冲区的交换文件?(如果确实如此)。
背景: 在一个半密集的研讨会中,当 MacBook 耗尽果汁并突然断电(它没有像往常那样睡眠/休眠)时,我在一个未命名/未保存的 MacVim 缓冲区中做笔记。
问题: 有人知道未保存的工作是否有可能已保存到交换 (.swp) 文件或类似文件中,并且可以恢复?
系统详细信息: 特别是在 Mac OS X 10.5.8 上使用 MacVim 时发生的这种情况(但其他版本的可能恢复提示也很有趣)。我还没有重新启动 MacVim,以防这样做会启动清理过程。
假设我已经像这样启动了 vim:
vim foo bar
Run Code Online (Sandbox Code Playgroud)
现在我决定将这些文件中的每一个都放在自己的选项卡中。有没有办法在不退出 vim 并将-p
选项添加到我的命令行的情况下做到这一点?
在 Vim 中,有没有办法将光标移动到一行中非空白字符的开头?例如,如何将光标移动到下面第二行中的“S”?
第一行 第二行
如果重要的话,我主要使用 MacVim,但我也希望能够从控制台执行此操作。
谢谢!
我的 vimrc 中有一些配置。一些通用的,还有一些非常具体的。
我想与一些同事分享这个配置,但他们中的很多人不需要这些特定的。
而不是编辑一堆不同的vimrc,我想知道是否有可能有一个“包含”指令 - 类似于名为“.vimrc_module”并从vimrc调用的文件。是否可以?
到目前为止,我已经发现通过横向交换分裂 CTRL+W x
,仅此而已。
如何移动拆分 在包含多个垂直和水平拆分的视口中的任意位置拆分?
我如何创建一个水平分割,比如说,跨越整个屏幕的上半部分 在我已经打开几个垂直分割后?(目前,当我在已经垂直拆分的视口中创建新的水平拆分时,我会在其中一列中进行水平拆分。)
也许大多数 vim 用户更喜欢选项卡而不是拆分,但我真的很喜欢后者,因为我在 30" 显示器上工作!:-)
在 vim 中,我经常执行搜索以跳转到一个单词或短语,而不是使用h/j/k/l
. 然后我点击n
在事件之间跳跃。
说我有这样的文字:
Time flies like an arrow; fruit flies like a banana. - Groucho Marx
Run Code Online (Sandbox Code Playgroud)
我输入/an arrow
并按回车键。该短语被突出显示,我用 跳转到它n
。
现在我想直观地选择该文本,也许要更改它或删除它。(是的,我知道:s
替换命令。)
由于我的光标位于“箭头”开头的字母“a”处,我可以点击v
,然后按e
几次以突出显示整个短语。但我觉得有一种更短、更语义化的方式。毕竟,我已经指定了我感兴趣的文本。
我如何编写一个命令来说“视觉选择当前的搜索选择?”
我习惯于在 Vim 中在正常模式下使用块光标。这对 Vim 范式来说是有意义的;当您按下 时x,很清楚哪个字符将被删除。
我已经在 Windows 计算机上安装了 Cygwin,但是当我在其终端中使用 Vim 时I
,即使在正常模式下,我也会得到光标。我怎样才能让光标变成一个块呢?