VSCode vim 插件在 o 换行后,退出插入模式会丢失所有缩进的问题

339 天前
 Retas

如题,VSCode vim 插件在 o 换行后,退出插入模式会丢失所有缩进,ctrl + o 进入临时的普通模式也会出现缩进丢失。 主要场景,o 换行后退出编辑模式然后 p 粘贴一个单词,没有缩进有点膈应

1952 次点击
所在节点    Vim
11 条回复
palytoxin
339 天前
正常情况缩紧都是不提交到版本管理的,o 之后正常应该是保持缩进写内容,没内容 esc 后整行删除我觉得没问题。
rrfeng
339 天前
我也觉得正常……不然你新增空行之后不写内容,每行都带一个 tab/space 进去?
为啥不直接按 p ,formatter 不会自动缩进吗……
0900301432
339 天前
这种配置一下保存自动 format 就可以了
Retas
339 天前
@palytoxin 无内容退出插入模式直接抹掉缩进觉得有点不美观,因为进入普通模式进行其他操作会从首个空位开始,试了下缩进提交问题可以用 formatter 解决
@rrfeng 空行缩进可以 formatter 直接抹掉,如果复制的是单词,直接 p 会直接从当前光标复制,没有换行效果
@0900301432 有配置自动 format ,只是觉得抹掉缩进有点膈应
Amox
339 天前
ideaVim 是会保持缩进的,o 换行退出编辑模式然后 p 粘贴单词这个操作我也偶尔会用,如果没有缩进确实会有点难受
skiy
339 天前
应该是 VSCode 自己 format 了。我用 VSCode ,写文档说明时,三个空格后,按回车。它自动把我后面三个空格给删掉了。换行效果就无了……特么……我现在还搞不懂如何处理。

> aaa
> bbb
Jaosn
339 天前
我好像没这问题,无法复现
notfornothing
338 天前
野路子:
yypcc
mgdrum
165 天前
我也遇到了,后来是通过调用 vscode 命令解决的

-- 在当前行之后插入新行并调用 VSCode 的缩进命令
-- 在当前行之后插入新行并进入插入模式,因为 neovim 的 o 命令会扰乱缩进
vim.api.nvim_set_keymap('n', 'o', ':call VSCodeNotify("editor.action.insertLineAfter")<CR>i', {
noremap = true,
silent = true
})
-- 在当前行之前插入新行并进入插入模式
vim.api.nvim_set_keymap('n', 'O', ':call VSCodeNotify("editor.action.insertLineBefore")<CR>i', {
noremap = true,
silent = true
})
mgdrum
165 天前
看错了,我以为是 vscode-neovim
seaT
28 天前
这是正常的操作,如果你按 Esc 退出后需要在当前行继续输出,应该按 S 键

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1009251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX