Vim 如何在下线对齐所有这些斜线

Vim 如何在下线对齐所有这些斜线,vim,Vim,我正在尝试对齐这些行末尾的所有斜线,还有800多行。最好是我使用vim的第80列中的所有斜线。有人有办法吗?以下是一个例子: #define TAILQ_INIT(head) do { \ (head)->tqh_first = NULL; \ (head)->tqh_last = &(head)->tqh_first; \ } while (0) 如果代码/文本: 使用空格代替制表符, 如

我正在尝试对齐这些行末尾的所有斜线,还有800多行。最好是我使用vim的第80列中的所有斜线。有人有办法吗?以下是一个例子:

#define  TAILQ_INIT(head) do {               \
   (head)->tqh_first = NULL;           \
   (head)->tqh_last = &(head)->tqh_first;         \
} while (0)

如果代码/文本:

使用空格代替制表符,
如果文本宽度设置为80,则\s*\\$之前的文本长度:

set textwidth=80
您可以使用以下函数作为基础:

function! RightAlign(char)
    if strlen(a:char) > 1
        return
    endif
    let l:linelength = strlen(getline('.'))
    right
    let l:spaces = strlen(getline('.')) - l:linelength
    execute "normal 0|d" . l:spaces . "l"
    execute "normal f" . a:char
    normal P
end
funccommand -range -nargs=1 RightAlign <line1>,<line2>call RightAlign(<args>)
参数是要在右侧对齐的第一个字符

它可以在以下范围内调用:

:'<,'>RightAlign '/'
:%RightAlign '/'
如果传递的参数长度超过1个字符,函数将返回


此外,如果使用空格而不是制表符,效果会更好。这也需要一些修改。

您好。如果您添加的是代码格式的部分,而不是使用图片链接,那么会更容易。@drclaw您是如何做到这一点的?我试过了,但没能弄明白@这既给出了代码作为图像不受欢迎的原因,也给出了如何着手修复它。如果您发现自己经常尝试对齐代码,那么有一个非常方便的插件,称为vim easy align@我收回了对代码图像的反对票,并给了你一张赞成票。感谢您将其作为代码块共享。非常感谢!!效果很好。但是,因为我使用了制表符而不是空格,所以我必须将现有的制表符转换为空格。我使用::set tabstop=3 shiftwidth=3 expandtab和:retab完成了此操作,然后输入了您的命令。请随意重新格式化此评论,我是新手,仍在学习如何使事情变得漂亮
:RightAlign('/')
:'<,'>RightAlign '/'
:%RightAlign '/'