我知道Vim中的这些命令:
J:将当前行下面的行连接到当前行
-J:将当前行连接到上一行
但是如何将上一行连接到当前行?
您也可以使用 ex 命令
:m-2|j
m-2
的作用是将当前行移动到其当前位置的上方2行; 这会交换当前行和上一行的位置。j
将当前行和上一行连接起来,在两者之间插入一个空格。如果不想要空格,请使用j!
。|
分隔两个ex命令这个ex命令是以下写法的简化方式
:move .-2
:join
有许多方法可以做到这一点。其中之一是...删除上面的行,并将其附加到下面行的末尾:
k move up one line
^ move to the first printable character
y$ yank to the end of the line
"_d get rid of the now useless line by deleting it into the black hole register
$ move to the end of the line
p put the deleted text
J
在处理空格时与逐字连接不同。也就是说,如果想要J
产生的结果,k^d$k$p
会产生不同的结果! - bitmaskJ
命令添加的空格几乎总是会成为问题。当我编写文本时还好,但是当我连接 HTML 标签时就很糟糕了。因此,我倾向于使用 :j!
命令。 - romainlgJ
表示不带空格的J
。 - Dan Fitch" join with previous line with @j
let @j="kJ"
nnoremap <leader>j @j
let mapleader = " "
let g:mapleader = " "
nnoremap <Leader>j kJ
呢?请注意,这与问题中 OPs 的 -J
是相同的。 - D. Ben Knoble
kddpkJ
.......不是一句完整的中文语句或英文语句,也没有上下文可供参考,因此我无法为您提供准确的翻译。请提供更多上下文或明确的短语/句子以获得更好的帮助。 - William PursellddkPJ
。如果你需要频繁交换行,可以考虑创建像这个技巧中的映射。 - Dan Fitch