如何将 Midnight Commander 的默认编辑器/查看器设置为 Sublime

如何将 Midnight Commander 的默认编辑器/查看器设置为 Sublime

这个问题很简单,所以我认为不需要进一步的描述。

我只是补充说我正在运行 Ubuntu 13.04。

欢迎任何帮助。

答案1

像往常一样运行 MC。在菜单选项底行正上方的命令行中,输入

select-editor

这应该会打开一个菜单,其中包含所有已安装的编辑器的列表。这对我当前所有的 Linux 机器都有效。

答案2

在 Midnight Commander 中,转到选项菜单/配置...命令/使用内部编辑复选框并取消选中它。 (如果“自动保存设置”选项关闭,请不要忘记执行“保存设置”命令。)

然后将EDITOR环境变量设置为Sublime。您可能更愿意将其中之一添加到 shell 的资源文件中:

  • 所有使用的程序的全局设置EDITOR(不推荐):

    EDITOR=sublime
    export EDITOR
    
  • 仅针对给定午夜指挥官会话的临时设置:

    alias mc='EDITOR=sublime mc'
    

对于查看器来说也是如此,只需取消选中“使用内部视图”选项并设置VIEWER环境变量即可。

答案3

尽管这个主题很旧,但 Midnight Commandervi在我的 Tumbleweed 中仍然默认使用。

我检查了我的 Raspberry(即基于 Debian 的 Buster)上的设置。第一次运行 mc 时会提供“选择编辑器”,即在$HOME/.selected_editor.您可以使用以下命令创建它

touch $HOME/.selected_editor

它还有一个符号链接

/etc/alternatives/@editor pointing to /usr/bin/nano

创建该符号链接并进一步保存三个可执行文件脚本文件位于/usr/bin

明智寻呼机

#!/bin/sh

# Prevent recursive loops, where these values are set to this script
p="$(which sensible-pager)"
[ "$(which $PAGER || true)" = "$p" ] && PAGER=

${PAGER:-pager} "$@"
ret="$?"
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
    more "$@"
    ret="$?"
    if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
        echo "Couldn't find a pager!" 1>&2
        echo "Set the \$PAGER environment variable to your desired pager." 1>&2
        exit 1
    fi
fi

明智的编辑

#!/bin/sh

ret="$?"

# Prevent recursive loops, where these values are set to this script
p="$(which sensible-editor)"
[ "$(which $EDITOR || true)" = "$p" ] && EDITOR=
[ "$(which $VISUAL || true)" = "$p" ] && VISUAL=
[ "$(which $SELECTED_EDITOR || true)" = "$p" ] && SELECTED_EDITOR=

if [ -n "$VISUAL" ]; then
    ${VISUAL} "$@"
    ret="$?"
    if [ "$ret" -ne 126 ] && [ "$ret" -ne 127 ]; then
        exit "$ret"
    fi
fi

if [ -r ~/.selected_editor ]; then
    . ~/.selected_editor 2>/dev/null || true
elif [ -z "$EDITOR" ] && [ -z "$SELECTED_EDITOR" ] && [ -t 0 ]; then
    select-editor && . ~/.selected_editor 2>/dev/null || true
fi
${EDITOR:-${SELECTED_EDITOR:-editor}} "$@"
ret="$?"
if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
    nano "$@"
    ret="$?"
    if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
        nano-tiny "$@"
        ret="$?"
        if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
            vi "$@"
            ret="$?"
            if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then
                echo "Couldn't find an editor!" 1>&2
                echo "Set the \$EDITOR environment variable to your desired editor." 1>&2
                exit 1
            fi
        fi
    fi
fi
exit "$ret"

智能浏览器

#!/bin/sh

# Prevent recursive loops, where these values are set to this script
p="$(which sensible-browser)"
[ "$(which $BROWSER || true)" = "$p" ] && BROWSER=

if test -n "$BROWSER"; then
    ${BROWSER} "$@"
    ret="$?"
    if [ "$ret" -ne 126 ] && [ "$ret" -ne 127 ]; then
        exit "$ret"
    fi
fi

if test -n "$DISPLAY"; then
    if test -n "$GNOME_DESKTOP_SESSION_ID"; then
        if test -x /usr/bin/gnome-www-browser; then
            exec /usr/bin/gnome-www-browser "$@"
        elif test -x /usr/bin/x-www-browser; then
            exec /usr/bin/x-www-browser "$@"
        elif test -x /usr/bin/gnome-terminal && test -x /usr/bin/www-browser; then
            exec /usr/bin/gnome-terminal -x /usr/bin/www-browser "$@"
        fi
    fi
    if test -x /usr/bin/x-www-browser; then
        exec /usr/bin/x-www-browser "$@"
    elif test -x /usr/bin/x-terminal-emulator && test -x /usr/bin/www-browser; then
        exec /usr/bin/x-terminal-emulator -x /usr/bin/www-browser "$@"
    fi
elif test -x /usr/bin/www-browser; then
    exec /usr/bin/www-browser "$@"
fi

printf "Couldn't find a suitable web browser!\n" >&2
printf "Set the BROWSER environment variable to your desired browser.\n" >&2 
exit 1;

我真的很惊讶,但经过这些步骤之后,nano 就是使用时的编辑器F4

相关内容