可以在vim中将缩进设置为与上面相同的行吗?

时间:2017-06-09 18:14:38

标签: vim vi

如果我在一条线上并且我想将它设置为与我上面的线相同的缩进,那么没有插件可能吗?我该怎么办?

所以,如果我有

line above
         line im on now,i want to indent to same place as above

我将如何在vim中执行此操作?

2 个答案:

答案 0 :(得分:0)

<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> //hidden Image <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" /> //Frontmost image <ImageView android:layout_width="24dp" android:layout_height="24dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" /> </RelativeLayout> 。请参阅help on autoindent

答案 1 :(得分:0)

您可以使用此映射:

:nnoremap <Leader>i :exec 'normal k0v^hyj'<Bar>exec 'normal ^h0v^h'<Bar>exec 'normal P'<CR>

解释:

此地图复制了上面行的缩进:

  • k移至上一行
  • 0移至第一个字符
  • v视觉选择移动
  • ^移至第一个非空白
  • h向左移动一个字符
  • y进行视觉选择

然后:

  • j转到下一行

任何带有中止移动错误的地图,因此我们需要分割可能失败的内容,这是:可视地选择线的缩进(可以为0)。因为是exec<Bar>

  • ^移至第一个非空白
  • h向左移动一个字符(如果没有缩进,将失败)
  • 0移至第一个字符
  • v开始视觉选择移动
  • ^移至第一个空白
  • h向左移动一个字符

选择或不选择:

  • P用拉出的文字替换选择内容

注意:

  • 1 :将其转换为函数将避免视觉选择缓慢
  • 2 :考虑以下情况:线以上没有缩进的问题未解决