首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

找不到Emacs shell命令

Emacs是一款功能强大的文本编辑器,它提供了一个交互式的shell环境,可以在其中执行各种命令。然而,有时候在Emacs中执行shell命令时可能会遇到找不到命令的问题。

这个问题通常是由于Emacs的环境变量配置不正确导致的。当你在Emacs中执行shell命令时,Emacs会使用自己的环境变量,而不是你在终端中使用的环境变量。因此,如果某个命令在终端中可以正常执行,但在Emacs中找不到,很可能是因为Emacs的环境变量缺少了该命令所在的路径。

解决这个问题的方法有以下几种:

  1. 设置Emacs的环境变量:你可以在Emacs的配置文件(通常是~/.emacs或~/.emacs.d/init.el)中添加以下代码来设置环境变量:
代码语言:elisp
复制
(setenv "PATH" (concat "/usr/local/bin:" (getenv "PATH")))

这个例子中将/usr/local/bin添加到了Emacs的环境变量中,你可以根据需要修改为你所需的路径。

  1. 使用exec-path-from-shell插件:这是一个Emacs插件,可以自动将终端的环境变量同步到Emacs中。你可以通过以下步骤安装和配置该插件:
  • 使用包管理器安装插件,例如在Emacs的配置文件中添加以下代码:
代码语言:elisp
复制

(require 'package)

(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)

(package-initialize)

(unless (package-installed-p 'exec-path-from-shell)

代码语言:txt
复制
 (package-refresh-contents)
代码语言:txt
复制
 (package-install 'exec-path-from-shell))
代码语言:txt
复制
  • 在Emacs的配置文件中添加以下代码来配置插件:
代码语言:elisp
复制

(when (memq window-system '(mac ns x))

代码语言:txt
复制
 (exec-path-from-shell-initialize))
代码语言:txt
复制

这样,当你启动Emacs时,插件会自动将终端的环境变量同步到Emacs中。

  1. 使用绝对路径执行命令:如果你只是偶尔需要在Emacs中执行某个命令,而不想修改环境变量,你可以直接使用命令的绝对路径来执行,例如:
代码语言:shell
复制
/usr/local/bin/command

这样就可以绕过环境变量的问题,直接执行命令。

总结起来,当在Emacs中找不到shell命令时,可以通过设置Emacs的环境变量、使用exec-path-from-shell插件或者使用命令的绝对路径来解决。希望这些方法能帮助你解决问题。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

常用shell命令_使用shell命令

1、目录信息查看命令 ls   Shell 下文件浏览命令为 ls,格式如下: ls [选项] [路径]   ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,它的主要参数有...2、目录切换命令 cd   要想在 Shell 中切换到其它的目录,使用的命令是 cd,命令格式如下: cd [路径]   路径就是我们要进入的目录路径,比如下面所示操作: cd / #进入到根目录“/...cd ~ #切换到当前用户主目录 3、当前路径显示命令 pwd   pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数 4、系统信息查看命令 uname   要查看当前系统信息,可以使用命令...8、显示和配置网络属性命令 ifconfig   ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络 IP 地址等等...9、系统帮助命令 man   通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等, “man”命令格式如下: man [命令名] 10、 系统重启命令 reboot 11、软件安装命令

52640
  • shell 命令 干货

    a.out xde 图形用户界面调试工具 xde a.out 进程操作 ps 显示进程当前状态 ps u kill 终止进程 kill -9 30142 nice 改变待执行命令的优先级...网络与通信操作 telnet 远程登录 telnet hpc.sp.net.edu.cn rlogin 远程登录 rlogin hostname -l username rsh 在远程主机执行指定命令...hpc.sp.net.edu.cn mail 阅读和发送电子邮件 mail write 给另一用户发送报文 write username pts/1 mesg 允许或拒绝接收报文 mesg n Korn Shell...命令 history 列出最近执行过的 几条命令及编号 history r 重复执行最近执行过的 某条命令 r -2 alias 给某个命令定义别名 alias del=rm -i...unalias 取消对某个别名的定义 unalias del 其它命令 uname 显示操作系统的有关信息 uname -a clear 清除屏幕或窗口内容 clear env 显示当前所有设置过的环境变量

    42540

    Shell基础命令

    3.第二个Shell脚本:多命令处理 (1)需求: 在/data/目录下创建一个second.txt,在banzhang.txt文件中增加“I love jiao”。...,$*把所有的参数看成一个整体) $@ (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待) 2.案例实操 (1)打印输入的所有参数 [root@xxx-test2 test_shell...(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。)...1 (4)多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令) [root@xxx-test2 test_shell]$ [ condition...cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。

    1.4K00

    Shell sed命令

    选项 -e :直接在命令行模式上进行sed动作编辑,此为默认选项; -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作; -i :直接修改文件内容;...sed常用命令 sed常用命令 a\ 在当前行下面插入文本 i\ 在当前行上面插入文本 c\ 把选定的行改为新的文本 d 删除,删除选择的行 D 删除模板块的第一行 s...追加模板块的内容到内存中的缓冲区 g 获得内存缓冲区的内容,并替代当前模板块中的文本 G 获得内存缓冲区的内容,并追加到当前模板块文本的后面 l 列表不能打印字符的清单 n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令...,将导致分支到带有标号的命令处,或者到脚本的末尾 T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾 w file 写并追加模板块到...-e选项允许在同一行里执行多条命令 命令的执行顺序对结果有影响 [root@linux /]# cat xxx.txt 11111 22222 33333 44444 test [root@linux

    1.4K10
    领券