Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 符号链接点文件_Unix_Vim_Command Line - Fatal编程技术网

Unix 符号链接点文件

Unix 符号链接点文件,unix,vim,command-line,Unix,Vim,Command Line,我在链接点文件时遇到问题。我的主目录~/dotfiles中有一个文件夹,我已将其同步到github repo。我试图将我的.vimrc文件放入~/dotfiles/.vimrc中,并创建一个符号链接,将其置于~/.vimrc。为此,我键入 ln -s ~/dotfiles/.vimrc ~/.vimrc 但当我运行时,它会说 ln: /Users/me/.vimrc: File exists 我做错了什么?该错误消息表示您在~/.vimrc上已经有一个文件,而ln拒绝覆盖该文件。删除~/.v

我在链接点文件时遇到问题。我的主目录~/dotfiles中有一个文件夹,我已将其同步到github repo。我试图将我的.vimrc文件放入~/dotfiles/.vimrc中,并创建一个符号链接,将其置于~/.vimrc。为此,我键入

ln -s ~/dotfiles/.vimrc ~/.vimrc
但当我运行时,它会说

ln: /Users/me/.vimrc: File exists

我做错了什么?

该错误消息表示您在
~/.vimrc
上已经有一个文件,而
ln
拒绝覆盖该文件。删除
~/.vimrc
并再次运行
ln
,或者通过传递
-f
选项让
ln
为您删除它:

ln -s -f ~/dotfiles/.vimrc ~/.vimrc

有一个更好的解决方案可以在不使用符号链接或任何其他工具的情况下管理点文件,只需使用
--bare
初始化git repo即可

裸存储库的特殊之处在于它们省略了工作目录,因此您可以在任何地方创建repo,并设置
--工作树=$HOME
,这样您就不需要做任何工作来维护它

方法

首先要做的是,创建一个简单的回购协议

git init--bare$HOME/.dotfiles
要使用此裸repo,需要指定
--git dir=$HOME/.dotfiles/
--work tree=$HOME
,最好是创建一个别名

alias dotfiles='/usr/bin/git--git dir=$HOME/.dotfiles/--work tree=$HOME
此时,将跟踪您的所有配置文件,您可以轻松使用新注册的dotfiles命令来管理存储库,例如:-

#检查跟踪和未跟踪文件的状态
点文件状态
#添加文件
dotfiles commit.tmux.conf-m.tmux.conf已添加”
#将新文件或更改推送到github
点文件推送源主

查看其他有用技巧的更详细答案-

protip:在较新版本的Vim中,您还可以将
vimrc
存储在
~/Vim
目录中,以便于存储。这使得路径:
~/.vim/vimrc
。参见
:h vimrc