如何在csh中配置alias通过绝对路径调用gvim打开指定文件
问题原因分析
你原来的配置无法生效有三个核心问题:
which命令仅用于查找PATH环境变量中的可执行文件路径,无法返回普通文件的绝对路径,不符合你的需求- csh 环境的 alias 中需要用特殊标记
!*指代执行时传入的参数,你原来的写法没有正确接收传入的文件名 - 用双引号包裹alias定义时,内部的反引号会在配置加载阶段就提前执行展开,不会等到你实际调用
gg命令时再执行
解决方法
1. 基础可用配置
首先确认你的系统有realpath(大部分Linux、BSD环境默认自带),在你的~/.cshrc(如果用tcsh则是~/.tcshrc)中添加如下配置:
alias gg 'gvim `realpath !*`'
如果系统没有realpath,可以替换为readlink -f:
alias gg 'gvim `readlink -f !*`'
2. 生效方式
修改完配置文件后,执行以下命令让当前终端会话立即生效:
source ~/.cshrc
之后你就可以直接用gg some_file_in_remote_path的方式调用,会自动转成绝对路径传给gvim打开。
特殊场景适配
如果你确实需要打开的是PATH中的可执行文件(比如查看命令源码),可以把上述配置中的realpath替换为which即可。
内容的提问来源于stack exchange,提问作者haykp
相关产品推荐
相关产品推荐

