Какие настройки нужно изменить на моей локальной машине для выделения синтаксиса на всех удаленных машинах?

Повсюду есть большое количество не очень полезных ответов на этот вопрос. Я пробовал несколько. Некоторые потребуют от меня изменения настроек на каждой удаленной машине, к которой я обращаюсь. Некоторые обещали работать с небольшими изменениями на моем локальном компьютере, но не смогли.

В этом вопросе собраны несколько решений, которые я пробовал.

Итак, сначала: Можно ли изменить настройки на моем локальном компьютере таким образом, чтобы подсветка синтаксиса была включена для всех компьютеров, на которые я удален с помощью ssh?

Если да, то как?

Обратите внимание, что я использую Bash для Ubuntu в Windows 10 и в основном подключаюсь к машинам, на которых работает Ubuntu или Debian.

Команды / программы, которые я особенно хотел бы выделить:

ls stuff
history | grep stuff
vim stuff

0
21.04.2017, 13:34
2 ответа

Этот ответ касается не подсветки синтаксиса , а конкретно , а скорее проблемы сохранения согласованных конфигураций на нескольких машинах.

Вы не можете легко изменить поведение утилит в удаленной системе путем изменения конфигурации в вашей локальной системе, особенно если вы хотите настроить множество различных приложений.

Если ваш домашний каталог подключен к общему сетевому ресурсу, например, NFS, тогда локальные изменения, например, ~ / .bashrc или другие файлы на вашем локальном компьютере, очевидно, будут перенесены в удаленные системы, если они смонтируют тот же общий ресурс.

Следующим шагом (если совместное использование домашнего каталога в разных системах невозможно) будет настроить ваши локальные конфигурации так, как вы хотите, а затем скопировать их в удаленные системы, используя либо scp или rsync или что-то подобное. Если вы планируете настраивать локальные конфигурации, может быть хорошей идеей написать для этого простой сценарий.

Такой сценарий может быть таким же простым, как (непроверенный)

#!/bin/bash

configs=( "$HOME/.bash_profile" "$HOME/.bashrc" )
remotes=( "host1" "host2" )

for remote in "${remotes[@]}"; do
   scp "${configs[@]}" "$remote:"
done

Следующим шагом будет сохранение соответствующих файлов конфигурации в сетевой системе контроля версий файлов с некоторым описанием, такой как Git. Это дополнительно позволит вам создавать ветки для определенных машин или разновидностей Unix, а также упростит вам доступ к конфигурациям по сети.

Также обратите внимание, что разные утилиты, хотя и используют одно и то же имя, могут отличаться по своей реализации или версии в разных системах и, следовательно, требуют разной конфигурации. Это означает, что одна конфигурация, например, Здесь Bash может сломать вашу оболочку. Одним из очевидных источников такой поломки являются различия между Bash версии 3 и Bash версии 4 или тот факт, что некоторые (не Linux) системы не используют GNU coreutils (который предоставляет ls и другие подобные инструменты оболочки).

Я работаю над различиями в макете файловой системы (еще одна проблема при попытке настроить оболочку, сценарии инициализации которой используются для разных учетных записей в разных Unix), что требует от меня установки ПУТЬ по-разному на разных хостах) в моем ~ / .profile (я использую ksh93 вместо bash ) следующим образом:

PATH="$( getconf PATH )"
case "$(uname -s)" in
    OpenBSD) PATH="$PATH:/usr/local/sbin:/usr/games" ;;
    NetBSD)  PATH="$PATH:/usr/X11R7/bin" ;;
esac
1
28.01.2020, 02:46

Получить цвет по ssh не всегда просто.

Вам придется убедиться, что все необходимые вам конфигурационные файлы скопированы на другой хост. Vim требует определенных настроек для цветов, которые задаются в .vimrc и .bashrc. В этой статье блога описано, как можно автоматически копировать ваши dotfiles на любую машину, к которой вы подключаетесь.

Он использует LocalCommand, способность клиента OpenSSH выполнять команды на локальной машине.

Для полноты, команда перепечатана здесь с исправлениями для bash: PermitLocalCommand yes LocalCommand tar c -C${HOME} .bashrc .vim .vimrc \ | ssh -o PermitLocalCommand=no %n "tar mx -C${HOME}.

В зависимости от того, как вы раскрашиваете вывод ls или grep, вам могут потребоваться дополнительные файлы конфигурации.

Приведенный выше tar ssh tar - это шаблон команды, который встречается довольно часто и позволяет скопировать несколько файлов на удаленную машину.

Если это не решило вашу проблему, вам нужно предоставить больше информации. Используете ли вы mintty? Установили ли вы TERM? Как выглядят ваши .vimrc и .bashrc? Какую цветовую схему вы хотите использовать в vim? Используете ли вы какие-нибудь модные инструменты для раскрашивания? ...

0
28.01.2020, 02:46

Теги

Похожие вопросы