在vi中如何对齐代码(括号,parens等)?

你如何在vi中美化/对齐/格式化代码? 命令是什么?

我粘贴了一大堆代码,我需要将它们全部格式化/对齐......显然,我是一名vi初学者。

X


我的答案中的这些命令在vim中工作。 大多数认为他们使用vi的人都在使用vim。 要确定你的'vi'是否真的是'vim',打开vi并输入:version - 如果是vim,它会这样说。 否则,您可能只会看到没有程序名称的版本号。 另外,当你第一次打开vim的时候,你通常会看到某种说“VIM-VI iMproved”的启动画面......

自动缩进

要打开自动缩进功能,请确保vim知道您正在编辑的文件类型(它通常会自动从文件扩展名中检测到这种情况,但可能无法通过某些文件类型找出它)。 您可以使用语法高亮显示的菜单来告诉它文件类型。 然后,这样做:

:filetype indent on

您可以使用禁用自动缩进功能

:filetype indent off

自动调整/校正缩进

通常, = {motion}会将代码与缩进级别对齐。

  • ==对齐当前行
  • =i{对齐内部块
  • =%与光标下的匹配括号/括号对齐
  • =14j14==对齐下面的14行
  • =G对齐文件的末尾
  • vG=相同的东西,对齐文件的末尾(但使用可视化模式)
  • vjjj=对齐四行(使用可视模式)
  • 手动缩进

    如果vim没有正确猜测缩进级别,有两种方法可以改变它:

  • 如果你是在正常模式下(这里的一切是一个命令),做<<左移线或>>右一个标签来接班。 你可以通过使用上面显示的相同的移动命令(例如, >i{缩进当前的内部代码块),通过多行执行此操作。
  • 如果您处于插入模式,则可以通过Ctrl-T进一步缩进线条(不移动光标),或者使用Ctrl-D缩进一个选项卡
  • 对齐等号等

    如果你想在声明列表中对齐等号,你应该考虑使用这个vim脚本:http://www.vim.org/scripts/script.php?script_id=294

    调整缩进/制表符大小

    如果您希望vim在缩进时使用空格而不是制表符,请运行此命令(或考虑将其添加到vimrc文件中)

     :set expandtab
    

    要设置多少个空格等于一个制表符,我通常会这样做:

     :set expandtab softtabstop=3 tabstop=3 shiftwidth=3
    
  • tabstop - 选项卡计数的列数(影响显示现有选项卡字符)
  • shiftwidth - 通过<<和>>等命令控制缩进大小。
  • softtabstop - 按Tab键时需要插入多少空间
  • expandtab - 将tab键扩展到空格
  • 但是,如果您必须使用不同数量的选项卡,则还可以使用此功能和键绑定:

    function! Ktabs(tabsize)
        execute "set softtabstop=" . a:tabsize . " tabstop=" . a:tabsize . " expandtab shiftwidth=" . a:tabsize
        "set softtabstop=a:tabsize tabstop=a:tabsize expandtab shiftwidth=a:tabsize
    endfunction
    noremap <leader><Tab> :call Ktabs(3)<Left>
    

    如果您正在编辑带有多个制表符和空格的文件,则可能需要在设置制表符大小后使用此命令:

    :retab
    

    ={motion}

    :h =

    PS如果vim可用,则不应使用vi。


    如果手动调节缩进我会打开一个可视块与V在第一行或最后一行我想重新缩进,移动到含有嵌段支架,后藤另一支架以% ,然后用移线><

    如果缩进量很大,我会把所有的东西都用<并且重复一遍. 然后重新缩进一切。

    另一个解决方案是使用unix fmt命令,如你在Vim中所描述的那样,Vim是你不需要的, {!}fmt

    链接地址: http://www.djcxy.com/p/49495.html

    上一篇: How does one align code (braces, parens etc) in vi?

    下一篇: What can I do in VIM that I can't already do in Visual Studio?