Vim 创建文件

Vim 创建文件

有没有设置vimrc如果它正在创建文件,它会更改它在文件上设置的权限吗?例如,如果我现在创建一个文件,它的权限是 664,但我希望它默认为 755。有人知道我可以在 vimrc 中设置什么来做到这一点吗?

答案1

你不能在 .vimrc 中做到这一点,但如果你在启动 Vim 的环境中正确设置了 umask,你(大部分)可以实现你想要的。参见维基百科的 umask 文章

Umask 不会默认为文件上的可执行文件(除非创建文件的程序在创建时请求执行权限),但它会在目录上执行。但是,即使你可以,jjlin 是正确的,你应该绝不默认为文件可执行;仅在需要时更改它。这可以通过:!chmod a+x %在 Vim 中执行类似“ ”的操作轻松实现。

答案2

文件应该不是默认为可执行,因此即使vim有这样的功能,您也不应该使用它。请根据具体情况设置可执行位。

答案3

正如已经指出的那样,你不应该曾经创建默认设置了可执行位的文件。设置所谓文件创建掩码的标准机制由 控制umask。该umask命令可用于查看和设置当前环境的这些值。但是,只有在真正需要时才需要在文件上设置可执行位 - 编写脚本等时。因此,您最好创建一个bash包装函数来执行您想要的操作:

vimx() { vim "$@" && chmod +x "$@"; };

将其粘贴到~/.bashrc文件中并运行source ~/.bashrc。现在,无论何时运行,vimx文件都将以可执行位设置的形式保存。

如果您只想对打开的文件进行测试运行(无需+x权限),您可以简单地从内部运行以下命令vim来测试您的脚本(此处为bash脚本):

:!bash %

答案4

如果你有兴趣制作新创建的Unix风格#!脚本文件在第一次保存时是可执行的,那么你可能会发现 Tim Pope 的vim 太监插件很有用。它包含一些(未记录的 )“自动命令”,这些命令将在第一次保存chmod +x新文件后立即对其执行操作,该文件的第一行以#!(例如)开头。#!/bin/sh

未记录,即 README 文件中未提及它们。

相关内容