Перенаправьте VI выводов команды в файл

Хорошо, основной вопрос здесь был то, что у Вас были пробелы, разделяющие записи каталога в Вашем $PATH и это, у Вас были эти пробелы в не заключенные в кавычки переменные, которые перепутали bash.

Что Вы хотели сделать, в этом случае был, добавляет каталог к Вашему пути. Правильный синтаксис PATH="/foo:/bar/baz:$PATH. Добавление $PATH в конец средства, что его текущее значение будет добавлено в конец переменной, тот способ, которым Вы не перезапишете то, что уже было там. Каталоги в $PATH читаются в порядке, так добавьте его к началу, если Вы хотите, чтобы новые каталоги искались в последний раз: PATH="$PATH:/foo:/bar".

Другая проблема состояла в том, что у Вас было много дублирующихся путей. Можно найти их путем выполнения

$ echo $PATH | perl -pne 's/:/\n/g' | sort | uniq -d
/bin
/Library/Frameworks/Python.framework/Versions/2.7/bin
/Library/Frameworks/Python.framework/Versions/3.3/bin
/Library/Frameworks/Python.framework/Versions/Current/bin
/sbin
/usr/bin
/usr/local/bin
/usr/sbin

Наконец, Вы экспортировали $PATH многократно, который бессмыслен. Я удалил все дубликаты и зафиксировал Ваш синтаксис и закончил с этим:

# Setting PATH for MacPython 2.5
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"

# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"

# Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
PATH="/usr/local/git/bin:/usr/X11/bin:/Users/oskarniburski/.rvm/bin:/usr/X11R6/bin:$PATH"

##
# Your previous /Users/oskarniburski/.bash_profile file was backed up 
# as /Users/oskarniburski/.bash_profile.macports-saved_2013-09-26_at_17:32:30
##

# MacPorts Installer addition on 2013-09-26_at_17:32:30: adding an appropriate PATH 
# variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"

# Finished adapting your PATH environment variable for use with MacPorts.

Скопируйте тот файл, откройте Ваш терминал и выполните эти команды:

/bin/cp ~/.bash_profile ~/bash_profile.bad
/bin/cat > ~/.bash_profile

Первое сделает резервное копирование Вашего тока ~/.bash_profile (на всякий случай). Второе, будет казаться, сделает только, это откроется ~/.bash_profile для записи. Просто вставьте то, что я дал выше непосредственно в терминал затем, хит Входит и затем CtrlC. Это должно возвратить все нормальному.

Примечание: Вы указывали /bin,/sbin,/usr/bin и /usr/local/bin в Вашем .bash_profile. Они почти наверняка уже находятся в Вашем $PATH и не должны быть добавлены. Если они отсутствуют (echo $PATH видеть текущее значение), просто добавляют их использующий синтаксис, который я описал выше.

3
10.07.2014, 19:53
1 ответ

В vim можно использовать команду redir. В режиме команд:

:redir > vim.output | set fileencoding | redir END

Затем вывод set fileencoding будет сохранен в vim.output. Существует множество других опций redir, подробнее см. :help redir.

Это работает в vim, а не в vi.

6
27.01.2020, 21:14

Теги

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