标签: eshell

在Windows上使用git和Emacs eshell模式时出现问题

当我尝试在emacs eshell模式下进行git提交时:

git commit -a -m "message"

我收到一个错误:

'c:\Program' is not recognized as an internal or external command,
operable program or batch file.  

同时在emacs shell模式中不存在此问题.如何使用git强制eshell正常工作?

git emacs eshell

6
推荐指数
1
解决办法
2554
查看次数

如何编写eshell脚本?

那里.我是eshell的新手,现在我遇到了一个问题,我怎么能编写脚本.我已经尝试了(rm~/somefile)并且它工作了.所有的命令都是这样的?我应该如何编写条件代码和循环?我应该自定义什么来使系统使用eshell而不是其他命令来执行我的脚本,比如bash ,默认情况下? 我不是很擅长英语,我希望你能理解我的意思.我也会感谢我对英语表达的任何修正吗?

emacs eshell

6
推荐指数
1
解决办法
793
查看次数

如何在Emacs缓冲区中执行git提交

我正常工作的方法是为我正在处理的代码提供一个小的eshell缓冲区和一个更大的缓冲区.我使用eshell缓冲区进行编译和简单测试.

如果我想做git提交,当我以这种方式运行时,我总是会打开一个新的Emacs窗口.

我如何才能在当前的Emacs会话中简单地打开一个新的缓冲区?

git emacs eshell

6
推荐指数
1
解决办法
778
查看次数

在emacs中创建多个eshell实例

想想:用eshells,一个la xmonad平铺我的emacs窗口.这可能吗?我可以Mx eshell打开第一个eshell实例,但是将来的调用只关注第一个实例.

emacs xmonad eshell

5
推荐指数
2
解决办法
1177
查看次数

在emacs的eshell中调用su

我可以在eshell中以非root用户身份运行普通的linux命令.当我尝试su到root时,所有常用的linux命令都消失了(ls,cat等)我该怎么解决这个问题?

emacs eshell

5
推荐指数
1
解决办法
564
查看次数

使用eshell编写脚本

有没有办法编写从eshell缓冲区使用的.sh脚本?使用eshell(elisp)特定命令?

我想ediff $1 $2从我的执行compare.sh从ESHELL缓冲区内.

emacs eshell

5
推荐指数
1
解决办法
319
查看次数

在emacs*eshell*中等效"exec"?

我想编写一个eshell函数,它包含一个现有的命令行脚本.为了做到这一点,我希望能够从eshell函数执行shell命令.我的第一直觉是做类似的事情

(defn eshell/myfunc ()
  (shell-command "mycommand"))
Run Code Online (Sandbox Code Playgroud)

而这一类的作品,除少数问题.它运行在劣质shell中,而不是像真正的"exec"命令.这意味着,除其他外,eshell中的命令"myfunc"似乎在命令运行时阻塞.收集"mycommand"的输出,最后显示在Shell输出缓冲区中,但它不会复制正常shell函数的行为,标准输出在运行时会出现.

那么,这样做的正确方法是什么?

emacs elisp eshell

5
推荐指数
1
解决办法
197
查看次数

Emacs eshell.如何在按RET时读取命令行的内容

我打算在按RET时为每个提示使用bm.el Visible Bookmarks.我已经设法在某种程度上实现了这一点.如果缺少一些重要问题,请在下面评论我的代码:例如.我不知道我是否需要处理args而不仅仅是将它们传递给默认函数.

当我在空命令行上按RET时,我不想为该行添加书签.在将contol传递给默认函数之前,如何拦截命令行内容eshell-send-input

(defun eshell-send-input-zAp (&optional use-region queue-p no-newline)
  "eshell-send-input, customized to add bm-bookmark to prompt line"
 (interactive)
  (bm-bookmark-add)
  (eshell-send-input use-region queue-p no-newline))

(add-hook 'eshell-mode-hook
          #'(lambda ()
              (define-key eshell-mode-map
                [return]
                'eshell-send-input-zAp)))
Run Code Online (Sandbox Code Playgroud)

emacs command-line elisp eshell

5
推荐指数
1
解决办法
364
查看次数

Emacs,平滑滚动,滚动边距和eshell

我喜欢大约8左右的滚动边距.这意味着当光标位于顶部或底部的8行内时,缓冲区将开始滚动.但是,此方案不适用于eshell和ansi-term缓冲区,isql缓冲区或可能与emacs一起使用的任何REPL缓冲区.在任何一个缓冲区中,当一个缓冲区执行任何操作时,它会立即向上滚动缓冲区,以便缓冲区底部和输入线之间有8条线,使得它最好处于尴尬状态,在最坏情况下无法使用任何类似终端的终端emacs中的缓冲区,具体取决于具体情况.

除非是全局的,否则没有缓冲区似乎能识别scroll-margin变量.因此,虽然我可以使用不同模式中的挂钩将变量设置为不同的值,但它会影响我的所有打开缓冲区.

所以我要说我正在编辑一些代码.我决定在shell中做一些事情.我的shell-mode-hooks将scroll-margin设置为0(这样它们可以使用).然后,对于所有缓冲区,滚动边距设置为0 ,这使得在我的编码缓冲区中滚动变得笨拙.但是如果我打开一个新的编码缓冲区,它会将我的滚动边距设置回8.然后我的shell缓冲区很难或无法使用,因为只要它们从命令获得焦点或显示输出,它就会立即向上滚动8个空格.

除了为所有缓冲区保持全局滚动边距0之外,是否有任何解决方案?

emacs scroll elisp margin eshell

5
推荐指数
1
解决办法
667
查看次数

如何将 ctrl+D 发送到 Emacs 的 Eshell 中?

如何将 ctrl+D 发送到 Emacs 的 Eshell 中?看起来 Emacs 拦截了我向 shell 发送任何控制键 + 字母的所有尝试,并尝试将其解释为它自己的命令。如何将该组合发送到 Emacs 的 EShell?

emacs eshell

5
推荐指数
1
解决办法
1581
查看次数

标签 统计

emacs ×10

eshell ×10

elisp ×3

git ×2

command-line ×1

margin ×1

scroll ×1

xmonad ×1