VIM中删除多行空格

发布于 2024-10-13 00:41:09 字数 795 浏览 5 评论 0原文

为了缩进 HAML 代码,我通常添加或删除 2 个空格。添加我这样做:

  1. 进入视觉模式(ctrl + v)
  2. jj选择行
  3. shift + i进入插入
  4. 类型2个空格
  5. ESC

就这样添加了2个空格。然而,要删除空格,我不起作用,例如执行以下操作:

  1. 输入视觉模式( ctrl + v)
  2. jj 选择行
  3. shift + i 进入插入
  4. 删除 2 个空格(使用退格键或删除)
  5. ESC

这只是做不起作用,其他行空格不会被删除。那我该怎么做呢?

下面是一个示例代码:


 .module_1
     .pricing_details
       %h2
         Save

这个想法是移动所有内容,使其与 .module_1 中的 2 个空格匹配:


 .module_1
   .pricing_details
     %h2
       Save

建议的解决方案使用 << >现在仅适用于缩进我想例如:


 .module_1
   .pricing_details
     %h2
       Save

将上面的内容移至:


 .module_1
 .pricing_details
   %h2
     Save

To indent HAML code I usually add or delete 2 spaces. Adding I do:

  1. Enter visual mode ( ctrl + v)
  2. jj to select the lines
  3. shift + i to go into insert
  4. type 2 spaces
  5. ESC

That's it 2 spaces are added. However to remove the spaces, I't does not work, for example doing:

  1. Enter visual mode ( ctrl + v)
  2. jj to select the lines
  3. shift + i to go into insert
  4. Delete 2 spaces ( with backspace or delete)
  5. ESC

This just does not work, other lines spaces are not deleted. How then can I do this ?

Here is an example code:


 .module_1
     .pricing_details
       %h2
         Save

The idea is moving everything so it matches 2 space in respecto .module_1 as:


 .module_1
   .pricing_details
     %h2
       Save

The propose solution using < > works only for indenting now I'd like to for example:


 .module_1
   .pricing_details
     %h2
       Save

move the above to:


 .module_1
 .pricing_details
   %h2
     Save

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

铁憨憨 2024-10-20 00:41:09

尝试 <> 命令。您需要 :set shiftwidth=2 才能让它们以这种方式工作。


更新

考虑到您的上一个示例,

.module_1
  .pricing_details
    %h2
      Save

对 ⇓ 的更改。

.module_1
.pricing_details
  %h2
    Save

可以通过移动到 .pricing_details 行并点击 Vjj< 来完成

Try < and > commands. You will need :set shiftwidth=2 for them to work in this way.


UPDATE

Considering your last example, changing

.module_1
  .pricing_details
    %h2
      Save

to ⇓

.module_1
.pricing_details
  %h2
    Save

can be accomplished with moving to .pricing_details line and hitting Vjj<.

秋千易 2024-10-20 00:41:09

突出显示文本并执行以下操作:

<

使用:

.

多次重复该操作。请注意,无论您的移动宽度是多少,这都会移动文本。如果它不是 2,您可以通过执行以下操作将其设置为 2:

:set sw=2

您可以使用“>”以相同的方式缩进文本。

所有这些都在文档中: http://vimdoc.sourceforge.net/htmldoc/usr_25 .html#25.3

Highlight your text and do:

<

Use:

.

To repeat the action multiple times. Note that this will shift the text whatever your shift width is. If it is not 2, you can set it to 2 by doing:

:set sw=2

You can indent text the same way by using ">".

All of this is in the documentation: http://vimdoc.sourceforge.net/htmldoc/usr_25.html#25.3

倾城泪 2024-10-20 00:41:09

在 vimrc 中:

" pressing F5 adds two spaces at beginning of line and goes to next line
inoremap <F5> <ESC>:s/\(.*\)/  \1/e<CR>:set nohlsearch<CR>ji
" also works when not in edit mode
map <F5> i<F5><ESC>

" F6 removes two spaces from the end of whitespace at the beginning of line
inoremap <F6> <ESC>:s/\(^\s*\)/\1/e<CR>:set nohlsearch<CR>ji
map <F6> i<F6><ESC>

要从段落的每一行开头删除 2 个空格,只需在其所有行中按 F5 即可。

这是根据我用于注释和取消注释 C 代码的键绑定建模的(当然,区别在于正则表达式),

唯一的缺点是它需要禁用搜索突出显示,因为正则表达式始终与整个文档相匹配。

in the vimrc:

" pressing F5 adds two spaces at beginning of line and goes to next line
inoremap <F5> <ESC>:s/\(.*\)/  \1/e<CR>:set nohlsearch<CR>ji
" also works when not in edit mode
map <F5> i<F5><ESC>

" F6 removes two spaces from the end of whitespace at the beginning of line
inoremap <F6> <ESC>:s/\(^\s*\)/\1/e<CR>:set nohlsearch<CR>ji
map <F6> i<F6><ESC>

To remove 2 spaces from the beginning of every line of a paragraph just press F5 through all its lines.

This is modeled after my keybindings for commenting and uncommenting C code (the difference is in the regex of course)

only drawback is it needs to disable search highlight since the regex matches damn near the entire document all the time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文