Измените командную строку “среда” на команду программ

Существует большой плагин для VIM, который делает проверку синтаксиса Syntastic. Существует много других инструментов, доступных также для управления файлами, здания, и т.д. Перейдите к IRC #vim на freenode.net, существует много услужливых людей там.

5
23.08.2011, 02:05
4 ответа

То, что Вы просите, является "оболочкой мерзавца". Кажется, существует тот там именем git-sh.

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

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

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

9
27.01.2020, 20:33
  • 1
    Ty! С Вашим абзацем в середине Вы подразумеваете, что, когда я ввожу "мерзавца..." в консоли и затем делаю заполнение клавишей Tab, это знает команды мерзавца? Я уже задался вопросом, как это работает, потому что это делает ;) Таким образом, это на самом деле не проверяет программу мерзавца на свои доступные команды? номер –  user905686 22.08.2011, 18:49
  • 2
    @user905686. Возможно проанализировать документы использования и созданные стандартные программы заполнения клавишей Tab, но обычно существует библиотека возможных завершений, и это просто отделывается тех. Если у Вас есть правильные пакеты, установленные, это должно работать на большое количество популярных программ, но конечно не всех. –  Caleb 22.08.2011, 18:52

Можно определить команды мерзавца как псевдонимы в оболочке. Необходимо сделать выбор, когда команда мерзавца является также командой оболочки, например. git diff, git mv, … функция all_git_aliases_on делает все команды мерзавца доступными без git префикс, в то время как функция unambiguous_git_aliases_on делает команды мерзавца доступными без git префикс, только если нет команды оболочки тем именем.

Функция git_aliases_off удаляет эти псевдонимы; если у Вас были псевдонимы тем же именем как команда мерзавца (например. alias mv='mv -i'), они не будут восстановлены, необходимо установить их снова (добавьте их определения git_aliases_off функция).

Можно хотеть звонить unambiguous_git_aliases_on от Вашего ~/.bashrc или ~/.zshrc, или дать toggle_git_aliases короткий псевдоним такой как g.

git_commands=$(git help -a | grep '^  *[a-z]')
git_aliases=
all_git_aliases_on () {
  for x in $git_commands; do
    alias $x="git $x"
    git_aliases="$git_aliases $x"
  done
}
unambiguous_git_aliases_on () {
  for x in $git_commands; do
    if ! type $x >/dev/null 2>/dev/null; then alias $x="git $x"; fi
    git_aliases="$git_aliases $x"
  done
}
git_aliases_off () {
  unalias $git_aliases
  git_aliases=
}
toggle_git_aliases () {
  if [ -n "$git_aliases" ]; then
    all_git_aliases_on
  else
    git_aliases_off
  fi
}
4
27.01.2020, 20:33
  • 1
    Хорошее решение! Кажется, что это - универсальное, единственной вещью, которую необходимо изменить для других программ, является, возможно, первая строка, но с небольшой тонкой настройкой Вас мог сделать сценарий, который генерирует соответствующий сценарий как вышеупомянутое для определенной программы, правильно? И при включении псевдонимов как в сценарии исходные команды оболочки все еще доступны, не так ли? Действительно ли возможно выключить их затем, также? Затем это был бы ;) –  user905686 23.08.2011, 12:13

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

  alias l = 'ls -Alh'

Таким образом, когда я ввожу l на командной строке колотите выполнения ls -Alh вместо этого. Таким образом, Вы могли сделать что-то как:

  alias gx = 'git x'
  alias gy = 'git y'

в Вашем ~/.bashrc затем выполнение gx работал бы git x.

Я не знаю об универсальном решении, которое работало бы на программы в целом все же.

1
27.01.2020, 20:33

Я сделал бы a shell emulator. Это - в основном маленький сценарий, который даст Вам поддельную подсказку и примет определенные входные значения. Для экс-клена это могло быть похожим на это:

user@host ~$ gitshell
 Welcome to git-shell. Type help for command info
>> help
 help  - display this message
 x     - do x
 y     - do y
 exit  - close the shell
>> exit
user@host ~$

Не трудно кодировать (используйте Python или жемчуг или что-то), и после того как Вы помещаете его в свой $PATH, Вы установлены пойти. Это могло использоваться для мерзавца, hg, svn независимо от того, что Вы хотите. Просто идея, это - то, что я сделал бы.

0
27.01.2020, 20:33
  • 1
    я предполагаю, что это было бы лучше для кодирования использования платформы для оболочек, таким образом, просто необходимо обеспечить отображения от псевдонимов до фактических команд. Решением с помощью псевдонимов удара было бы простое. –  user905686 18.06.2017, 13:39

Теги

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