Вім не використовує псевдоніми Баша


2

Я намагаюся налаштувати Vim, щоб я міг компілювати код C безпосередньо з самого редактора:

.vimrc:

let $BASH_ENV = "$HOME/.bashrc"

autocmd FileType c map <F6> :!gcc -o "%:p:r.out" "%:." <bar> more<CR>
autocmd FileType c map <F7> :!%:p:r.out <CR>

.bash_aliases:

alias gcc="gcc -lm -ansi -Wall -g -O0 -Wwrite-strings -Wshadow -pedantic-errors -fstack-protector-all"

.bash_aliasesотримується з .bashrc.

Коли я компілюю щось F6, gccпсевдонім не використовується. Як я можу vimскористатися псевдонімом?

Це наступне питання до мого попереднього питання .

Відповіді:


2

Функція псевдоніма за замовчуванням вимкнена в неінтерактивних оболонках.

Помістіть у файлі .bash_aliases таке:

shopt -s expand_aliases

(Можливо, ви захочете мати власний файл для неінтерактивних оболонок, що запускаються з vim. Є, мабуть, багато речей у вашому файлі .bashrc, які ви не хочете робити.)


0

Більшість оболонок не створюють свій rc-файл (.shrc, .bashrc, .kshrc, .zshrc і т.д.) для неінтерактивних оболонок, а Vim не викликає інтерактивних оболонок для:! - команд. Якби це сталося, сталися бідні речі.

Я б радив замість цього створити фактичний скрипт оболонки, а потім викликати його зі свого відображення. (І ви можете зробити так, щоб ваш псевдонім оболонки теж викликав цей скрипт оболонки.)


Не могли б Ви розробити "погані речі"? Я також намагаюся отримати всі речі, які мені подобаються в звичайних оболонках, щоб працювати в VIM, коли працюю з "!". Запуск bashrc здається очевидною річчю для мене, але не вдається через деякі незвичайні взаємодії в моєму середовищі і встановлених плагінів. Будь-який фон і посилання, які ви могли б додати, також були б корисними. Дякуємо
Тім Абел

1
Ну, по-перше, Vim не емулятор терміналу, а інтерактивна оболонка під Vim буде погано поводитися, зіпсувати дисплей. Більшість оболонок мають опції і такі, які підходять тільки для дійсно інтерактивної оболонки. Є багато більш тонких проблем, які можуть виникнути - є причина, по якій оболонки розроблені для розрізнення між інтерактивно і неінтерактивно. Загалом, якщо ви намагаєтеся зробити псевдоніми оболонки з:! - команд у Vim, ви, ймовірно, наближаєтеся до проблеми неправильним шляхом.
Heptite

1
Спасибі, це корисно. В якості прикладу я псевдоніми , ls -alщоб llі я хочу , щоб мати можливість друкувати !ll. Я не впевнений, як ще підійти до цього :-) Це все частина мого великого плану ніколи не залишати vim.
Tim Abell

Одна з "поганих речей" полягає в тому, що vim може бути негайно припинено, коли ви повернетеся до неї. Якщо ви хочете використовувати всі ваші функції, псевдоніми, ви можете спробувати вирішити це питання .
Курт Дж. Сампсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.