小编Chr*_*s R的帖子

如何在守护进程模式下运行 Mac OSX 图形 Emacs?

简短形式:我想运行在http://emacsformacosx.com/ 上找到的 Mac OSX 版本的 Emacs 作为守护程序,图形和文本客户端根据需要连接到它。

详细来说,这是我想要的工作流程:

  1. 登录时,运行/Applications/Emacs.app/Contents/MacOS/Emacs --daemon以将 emacs 作为守护程序启动。 我已经知道如何做到这一点

  2. 从本地终端运行 emacs 时,我想要以下任一项:

    1. 如果我emacs从本地命令提示符运行,请使用所选文件打开一个新框架。
    2. 如果 #1 不可能,至少如果我从命令行运行emacsclient,请使用所选文件打开一个新框架。
  3. 从远程终端运行 emacs 时,我希望启动文本模式的 emacs,并连接到守护进程。

  4. 如果我运行,请Emacs.app重新使用在后台运行的 emacs 守护程序,而不是启动一个新实例并在其上打开一个新窗口。

到目前为止,我只能完成上面的 #1 和 #2.2,但这些都是简单的部分。#3 和 #4 是使这项工作最需要的东西。有谁知道如何完成这些事情?

emacs macos

25
推荐指数
1
解决办法
1万
查看次数

这个 dtrace 错误是什么意思?

iotop -C 5 122010 年末的 Macbook Pro (10.6.7) 上运行时,我重复出现此错误:

dtrace: error on enabled probe ID 5 (ID 19507: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0
Run Code Online (Sandbox Code Playgroud)

这是什么原因,我该如何解决?

mac troubleshooting

16
推荐指数
3
解决办法
9768
查看次数

当我的 CWD 在远程文件系统上时,如何有选择地禁用 zsh 的版本控制集成?

我在 OSX 上运行 zsh,有时我必须在安装的 sshfs 卷上工作。然而,git 在 sshfs 挂载上真的很慢。我的提示使用了 zsh 内置的 vc 模式内容,但在这种情况下我想跳过那部分。

每当我的 CWD 在安装的文件系统上时,我都想有选择地禁用 vc 集成。我怎样才能做到这一点?

我目前正在使用(大致)我的 .zshrc 的这个片段(好吧,.oh-my-zsh/themes,但你明白了)在我的提示中启用 git info :

zstyle ':vcs_info:*' enable hg git bzr svn p4

zstyle ':vcs_info:(hg*|git*):*' get-revision true
zstyle ':vcs_info:(hg*|git*):*' check-for-changes true

# rev+changes branch misc
zstyle ':vcs_info:hg*' formats "[%i%u %b%m]"
zstyle ':vcs_info:hg*' actionformats "(%{$fg_bold[red]%}%a%{$reset_color%})[%i%u %b%m]"

# hash changes branch misc
zstyle ':vcs_info:git*' formats "[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]"
zstyle ':vcs_info:git*' actionformats "(%a)[%{$fg[yellow]%}%12.12i%{$reset_color%} %u %{$fg[magenta]%}%b%{$reset_color%}%m]"

zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash

zstyle ':vcs_info:hg*:netbeans' use-simple true …
Run Code Online (Sandbox Code Playgroud)

zsh version-control git oh-my-zsh

16
推荐指数
1
解决办法
3231
查看次数

如何修复我的颜色 bash 提示包装?

我已经定义了一个 bash 提示(使用 PROMPT_FUNCTION),如下所示:

function get_hg_prompt_prefix() {
    local APPLIED_COLOR=$1; shift
    local UNAPPLIED_COLOR=$1; shift
    local ALERT_COLOUR=$1; shift
    local TEXTCOLOR=$1; shift
    local mercurial_prompt_line="{{patches|join(:)|pre_applied(${APPLIED_COLOR})|post_applied(${TEXTCOLOR})|pre_unapplied(${UNAPPLIED_COLOR})|post_unapplied(${TEXTCOLOR})}\n\r}"
    local mercurial_status_prompt="{ ${ALERT_COLOUR}{status}${TEXTCOLOR}}"

    echo "$(hg prompt "${mercurial_prompt_line}" 2>/dev/null)$(hg prompt "${mercurial_status_prompt}" 2>/dev/null)"
}

function set_prompt() {
    bright='\[[01m\]'
    colors_reset='\[[00m\]'
    HOSTCOLOR=${colors_reset}='\[[34m\]'
    USERCOLOR=${colors_reset}='\[[01m\]'
    TEXTCOLOR=${colors_reset}='\[[32m\]'
    APPLIED_COLOR=${colors_reset}='\[[32m\]'
    UNAPPLIED_COLOR=${colors_reset}='\[[37m\]'
    ALERT_COLOUR=${colors_reset}='\[[31m\]'

    hg_status="$(get_hg_prompt_prefix $APPLIED_COLOR $UNAPPLIED_COLOR $ALERT_COLOUR $TEXTCOLOR)"
    ps1_prefix="${hg_status}$colors_reset($bright$(basename $VIRTUAL_ENV)$colors_reset) "
    PROMPTEND='$'
    PS1="${ps1_prefix}${USERCOLOR}\u${colors_reset}${TEXTCOLOR}@${colors_reset}${HOSTCOLOR}\h${colors_reset}${TEXTCOLOR} (\W) ${PROMPTEND}${colors_reset} "
}

PROMPT_COMMAND=set_prompt
Run Code Online (Sandbox Code Playgroud)

一般来说,这给了我一个多行提示,显示一些 hg 状态信息以及我当前的 virtualenv,看起来(没有颜色)是这样的:

buggy-wins.patch
 ! (saas) user@computer (~) $ 
Run Code Online (Sandbox Code Playgroud)

问题是,这与提示长度的计算有关(我认为!)并导致奇怪的终端包装问题和光标放置。例如,在一个 80 字符的终端中,这是我看到的提示(** 包围的字符是光标位置):

~) $ **a**nis) crose@chris-rose (~
Run Code Online (Sandbox Code Playgroud)

在足够宽以显示提示的终端中,换行发生的时间比它应该的要早得多;这是我可以在 108 …

bash

9
推荐指数
1
解决办法
4601
查看次数

如何更改单个 emacs 缓冲区的背景颜色?

我想让连接到生产数据库的 SQL 交互式缓冲区非常非常明显,所以我的想法是将缓冲区的背景更改为深红色。

set-background-color但是不起作用;它将所有帧的颜色设置为指定的颜色。

如何仅更改单个缓冲区的背景?

emacs themes colors

8
推荐指数
2
解决办法
5909
查看次数

如何在 emacs 的 shell 模式下向 bash 发送文字选项卡?

我想完全绕过comint-mode的完成支持,而不是依靠从属进程来为我做。具体来说,如果我正在运行:

  • 电子书
    • 外壳模式
      • 猛击

然后我想TAB被传递给bash进程并被它扩展。

如果我正在运行:

  • 电子书
    • 外壳模式
      • 猛击
        • 查询语句

然后我想TAB由 psql 处理。

我已经在 shell-mode-hook 中尝试过这个,但无济于事:

(define-key shell-mode-map "\t" 'self-insert-command)
Run Code Online (Sandbox Code Playgroud)

设置后,该TAB键会在命令行上插入一个文字选项卡,这对我来说一点用处都没有。

我也试过这个,但是当我TAB没有任何反应时:

(defun cr/comint-send-tab ()
  "Send a tab character to the current buffer's process"
  (interactive)
  (comint-send-input t t)
  (process-send-string (current-buffer) "\t"))

(define-key shell-mode-map "\t" 'cr/comint-send-tab)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

emacs

8
推荐指数
1
解决办法
2841
查看次数

如何防止 Emacs 23 附带的 python.el 永远加载?

我使用 python-mode.el 而不是 python.el 进行 python 工作,我所有的自定义都依赖于它。但是,由于某种原因,Emacs23 附带的 python.el 会定期加载,突然间我的所有配置都消失了。

我怎样才能防止这种情况?现在,我的 .emacs 中有此代码:

(if featurep 'python)
    (unload-feature 'python))
Run Code Online (Sandbox Code Playgroud)

这似乎减少了这种情况的发生,但有时我会在同一个会话中打开一个 python 文件!-- 它会得到 python.el python-mode 而不是 python-mode.el 版本。然而,下一个缓冲区仍然具有旧模式。

这让我快疯了!

python emacs

7
推荐指数
1
解决办法
3209
查看次数

如何在 Mac OS X 中更改新帐户的默认设置?

基本上,我想更改 OS X 用户帐户的框架,以便对我在此本地计算机上创建的每个新用户执行以下操作:

  • 一组自定义的 Dock 图标
  • 一些数据已经在他们的 Documents 文件夹中
  • 桌面上一些远程资源的别名(主要是smb)
  • 设置屏幕保护程序和锁定设置。

我不需要任何这些被策略锁定,我只想配置其中的一些以便于访问。有可能在某个时候拥有 OS X 目录服务器,但我不能依赖它是可能/可用的。

administration osx-snow-leopard macos

7
推荐指数
1
解决办法
5006
查看次数

有没有办法使用键盘将应用程序移动到 OS X 上的另一个空间?

我在 OS X 上使用 Spaces,我想在 Gnome 中复制 Ctrl-Alt-<arrow> 功能(或者是 Ctrl-Alt-<arrow> -- 我记不清了)导致当前选择的窗口移动到另一个虚拟桌面。这是将应用程序从桌面移动到桌面的一种更愉快的方式。

有没有内置的方法来做到这一点?某种applescript或Quicksilver触发器怎么样?第三方应用?我愿意为执行此操作的应用支付少量费用,因此不需要免费啤酒。

我特别不是在寻找一种需要使用鼠标的方法。

mac keyboard-shortcuts virtual-desktop osx-spaces macos

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

如何摆脱日志中的 com.apple.launchd.peruser 错误?

我的控制台日志中出现重复错误,看起来(基本上)如下所示:

10-09-29 10:06:08 AM com.apple.launchd[1] (com.apple.launchd.peruser.501[51581]) getpwuid("501") failed
10-09-29 10:06:08 AM com.apple.launchd[1] (com.apple.launchd.peruser.501[51581]) Exited with exit code: 1
Run Code Online (Sandbox Code Playgroud)

这台机器是使用迁移助手设置的,从我的 UID 为 501 的机器开始,但这里是 505。当然,我有相同的用户名和组集,但是...

那么,这个 peruser launchd 工具在哪里配置,以便我可以禁用导致此错误消息的守护程序?

launchd migration-assistant macos

6
推荐指数
3
解决办法
4万
查看次数