简短形式:我想运行在http://emacsformacosx.com/ 上找到的 Mac OSX 版本的 Emacs 作为守护程序,图形和文本客户端根据需要连接到它。
详细来说,这是我想要的工作流程:
登录时,运行/Applications/Emacs.app/Contents/MacOS/Emacs --daemon以将 emacs 作为守护程序启动。 我已经知道如何做到这一点。
从本地终端运行 emacs 时,我想要以下任一项:
emacs从本地命令提示符运行,请使用所选文件打开一个新框架。emacsclient,请使用所选文件打开一个新框架。从远程终端运行 emacs 时,我希望启动文本模式的 emacs,并连接到守护进程。
如果我运行,请Emacs.app重新使用在后台运行的 emacs 守护程序,而不是启动一个新实例并在其上打开一个新窗口。
到目前为止,我只能完成上面的 #1 和 #2.2,但这些都是简单的部分。#3 和 #4 是使这项工作最需要的东西。有谁知道如何完成这些事情?
在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)
这是什么原因,我该如何解决?
我在 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) 我已经定义了一个 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 …
我想让连接到生产数据库的 SQL 交互式缓冲区非常非常明显,所以我的想法是将缓冲区的背景更改为深红色。
set-background-color但是不起作用;它将所有帧的颜色设置为指定的颜色。
如何仅更改单个缓冲区的背景?
我想完全绕过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)
我怎样才能做到这一点?
我使用 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 版本。然而,下一个缓冲区仍然具有旧模式。
这让我快疯了!
基本上,我想更改 OS X 用户帐户的框架,以便对我在此本地计算机上创建的每个新用户执行以下操作:
我不需要任何这些被策略锁定,我只想配置其中的一些以便于访问。有可能在某个时候拥有 OS X 目录服务器,但我不能依赖它是可能/可用的。
我在 OS X 上使用 Spaces,我想在 Gnome 中复制 Ctrl-Alt-<arrow> 功能(或者是 Ctrl-Alt-<arrow> -- 我记不清了)导致当前选择的窗口移动到另一个虚拟桌面。这是将应用程序从桌面移动到桌面的一种更愉快的方式。
有没有内置的方法来做到这一点?某种applescript或Quicksilver触发器怎么样?第三方应用?我愿意为执行此操作的应用支付少量费用,因此不需要免费啤酒。
我特别不是在寻找一种需要使用鼠标的方法。
我的控制台日志中出现重复错误,看起来(基本上)如下所示:
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 工具在哪里配置,以便我可以禁用导致此错误消息的守护程序?