如何让vim不要在字符串中添加缩进?

时间:2012-12-02 03:56:38

标签: string bash vim indentation auto-indent

我希望能够在我的bash脚本上gg=G,或者一些不会阻碍简单回声的自动格式变体。

我觉得这样的事情不是问题,我只是没有找到正确的方法:

  1. 为此方案正确回显字符串
  2. 为作业发出正确的命令
  3. 如果有人能帮助我,我们将非常感激。

    我输入的内容:

    someFun()
    {
        echo "Some really long string that is going to be automatically
        indented.";
    }
    

    我在提示中看到的内容

    >./someFun  
    Some really long string that is going to be automatically
        indented.
    

3 个答案:

答案 0 :(得分:1)

你可以连接这样的字符串:

echo "Some really long string that is going to be automatically" \
"indented."

要么关闭缩进:

:setlocal noautoindent
:setlocal nosmartindent

答案 1 :(得分:0)

这是我目前的解决方案,任何争论还是抬头?
这样可以满足项目的需要 这需要灵活性,包括:

  1. 不受textwidth =?的影响?多用户环境
  2. 不受auto- [indent | format] *影响*(vim,gedit,notepad ++,w / e)
  3. 通过完全控制来避免不可预测的输出

这些不可靠:
cat<< EOF ... EOF 以“\”转义回声


我做了一个文件/ usr / bin / yell

printTrueString()
{    
    local args=$@;
    echo $args;
    unset args;
}

printTrueString "$@";
exit 0


现在......

sumFun()
{      
    #auto-indent all you want VIM or w/e!...
    yell "hello mad
    world"

    #just like echo -e 
    yell -e "hello\nmad\nworld"        
}  
sumFun;
exit 0

#stays on one line, where the echo would split     
>hello mad world
>hello
mad
world

你可以做更多像...扩展回声这个作为内置...

答案 2 :(得分:0)

Byter,这是一个更合适的方式来实现你所追求的目标,以及其他任何先发者的一些提示。

首先,你不应该在任何旧地方藏匿自己的炮弹,尤其是/ usr / bin。如果您有自定义应用,我建议您将其存储在 / opt 或/ usr / local / bin中。

其次,这个特殊的外壳不应该是您的任何应用程序的先决条件,它不会起到与现有应用程序不同的目的。

相反,请参阅以下示例:

<强>问题&GT;

foo()
{
    echo "A string that gets affected by auto-format, is a pretty long
    string";
}

$foo
>A string that gets affected by auto-format, is a pretty long
    string

<强> SOLUTION&GT;

foo()
{
    longString='A really long
    \nstring';
    echo -e $longString

}

$foo
>A really long
string

使用 cat EOF | EOL ,如果你的话,这对你有用 用连字符指定没有缩进&#34; - &#34;见:

foo()
{
    cat <<-EOL
    really long
    string 
    EOL
}    

$foo
>really long
string

结论&gt; 这可以通过提供一种在bash中使用字符串的非突兀方式来解决您的问题。