如何在 bash 中将“sudo vim (filename)”设置为 sim (filename)

如何在 bash 中将“sudo vim (filename)”设置为 sim (filename)

我通常编辑文件时输入的内容是:

sudo vim Example.php

我想输入

sim Example.php

作为快捷方式。我知道我可以在 bash 配置文件中设置别名,但我该如何在别名中指定参数?在本例中,参数是文件名。

答案1

让我分几个部分来回答你的问题。

在 Bash 中设置别名

在您的 中.bashrc,输入如下内容:

alias sim="sudo vim"

在某些系统上(例如 Ubuntu),此行应该放在你的.bash_aliases文件中,该文件将由你的默认文件自动加载.bashrc

请注意,没有必要处理命令参数;这些参数将sudo vim自动附加到命令的末尾。

以超级用户身份编辑

把我刚才说的话全部扔掉。

通常,最好使用sudoeditsudoedit将自动生成文件的临时副本,您无需超级用户权限即可编辑该文件。这意味着 vim 将以您的身份运行(而不是以 root 身份运行),并且在您编辑完文件后,只需要短暂的超级用户权限。

确保sudoedit运行 vim

在 Debianish 系统上,使用sudo update-alternatives --config editor选择您喜欢的编辑器。否则,请确保$EDITOR在您的 中将其设置为 vim .bashrc

答案2

您可使用sudoedit Example.phpsudo -e Example.php来代替。如果要调用 Vim 以外的编辑器,则只需将 添加export EDITOR=vim到您的 bash 启动文件中即可。

就别名而言,伊施米尔是正确的。别名只是被扩展,然后任何参数都会被正常处理。如果你真的需要处理参数(而不是在别名扩展后将它们留在原处),你会想要使用一个函数。请参阅 bash 文档别名功能

答案3

alias sim='sudo vim $1'

答案4

改用 bash 函数。我有一个函数用于显示文件/文件夹的最后修改日期:

function lm()
{
    ls -l "$*" | awk '{print $6, $7, $8}'
}

尝试这个:

function sim()
{
    sudo vim "$*"
}

bash$*中的 代表所有命令行参数,即函数名称后面的所有内容。

然后像这样使用它:$ sim -p Example.php Example2.php

相关内容