Настройка терминала Cmder в Windows
Предполагается, что вы уже справились с установкой Cmder, поэтому я буду рассказывать исключительно про настройку. Действие происходит под Windows 10.0, версия ConEmu, которая пришла в поставке Cmder, 160710. Поднимается занавес.
При первом запуске вижу консоль с приглашением, кажется это cmd:

Первый запуск
Я в качестве шелла хочу использовать bash, поэтому расскажу про него. Аналогичным образом можно настроить другой шелл.
Резервная копия настроек
Перед тем, как проводить эксперименты, забекаплю настройки, чтобы в случае чего откатиться. Окно настроек открывается по Win+Alt+P
. В самом верху есть поле Storage, в котором указан файл с настройками. Рядом с ним кнопка Export:

Настройки можно экспортировать в файл и импортировать из файла
Жму эту кнопку «Export», он предлагает сохранить файл. Я сохраняю на рабочий стол и называю conemu1.xml
. Если я вдруг что-то сломаю в настройках, я смогу нажать Import внизу и восстановить настройки из этого файла.
А ещё так можно перенести настройки с одного компьютера на другой. Или поделиться с друзьями.
Вкладки при запуске
Для начала сделаю, чтобы при запуске Cmder открывался Bash. Открываю настройки, там секцию «Startup» и выбираю Startup options → Specified named task → {bash::bash}
. Можно выбрать Auto save/restore opened tabs, чтобы при открытии Cmder восстанавливались вкладки с прошлого раза. Но я люблю начинать с чистого листа:

Запускать при старте таску {bash::bash}
Перезапускаю Cmder и проверяю, что запустился bash. Ввожу команду echo $SHELL
, она отвечает /usr/bin/bash
, значит точно баш:

Узнаю текущий шелл
Папка при запуске
Такая шляпа, что Cmder открывается в домашней папке пользователя: C:\Users\Пользователь. А у меня весь код лежит на рабочем столе в папке Projects. Сделаю, чтобы консоль при запуске открывалась там. Startup → Tasks, выбираю {bash::bash}. Последний параметр запуска -new_console:d:%USERPROFILE%
, здесь %USERPROFILE%
это домашняя папка текущего пользователя. А мне нужна папка с проектами, дописываю %USERPROFILE%/Desktop/Projects
:

Bash будет запускаться в папке Desktop/Projects
Если вам нужна папка не в домашней директории, то у вас получится что-то вроде -new_console:d:D:/Projects
.
Новая вкладка
Нажимаю Ctrl+T
, чтобы открыть новую вкладку. Открывается окно с вопросом, какой именно шел запустить, от администратора или нет, и прочие скучные вопросы:

Дурацкие вопросы при открытии вкладки
Жизнь слишком коротка, чтобы на них отвечать. Хочу, чтобы по Ctrl+T
открывалась вкладка bash без всяких вопросов. И ещё чтобы в новой вкладке открывалась та же папка, что в текущей вкладке. Сначала поручу башу отдавать информацию о папке терминалу, по умолчанию он этого не делает. Для этого открываю вкладку с {bash::bash}, и в ней выполняю команду
echo "PROMPT_COMMAND='ConEmuC -StoreCWD'" >> ~/.bashrc
Эта команда добавит строку в .bashrc — файл настроек баша. Если файла ещё нет, он появится. Проверяю:

Настройки в .bashrc
Теперь в настройках Startup → Tasks создам новую задачу. Назову её {bash::cwd}
, потому что она запускает bash в текущей папке — current working directory. Поле «Task parameters» скопирую из задачи {bash::bash}
, команду тоже копирую из этой задачи, но меняю в последнем параметре папку на %CD%
:
cmd /c "%ConEmuDir%\..\git-for-windows\bin\bash --login -i" -new_console:d:%CD%
В поле Hotkey жму на многоточие и выбираю Ctrl+T:

Задача {bash::cwd} будет запускаться в текущей папке
Проверяю — не работает. Открывается дурацкое окно с вопросами. Иду в настройках в «Keys & Macro» и вижу, что на Ctrl+T
всё ещё висит «открыть окно с вопросами», выбираю его и добавляю к хоткеям шифт, чтобы окно висело на Ctrl+Shift+T
:

Добавляю шифт
Сохраняю и проверяю. По Ctrl+T
открывается вкладка с bash в текущей папке без вопросов, по Ctrl+Shift+T
открывается окно с вопросом, какую вкладку открыть. Отлично.
Запуск из папки
Когда я смотрю в проводнике какую-то папку, иногда хочу запустить терминал прямо в ней. Иду в настройки → Integrations. Там две группы полей: «ConEmu Here» и «ConEmu Inside». Первый добавляет в контекстное меню пункт, по которому можно открыть окно ConEmu, а второй добавляет пункт, по которому можно открыть ConEmu прямо во вкладке проводника. Мне нужен первый вариант — открыть ConEmu. Прописываю команду:
{bash::cwd} -cur_console:n
Заодно переименовываю ConEmu Here в Terminal (мне так больше нравится):

Добавляю в меню проводника пункт Terminal
И нажимаю кнопку «Register». Если не нажать, настройки не применятся. Закрываю настройки, закрываю терминал, захожу в папку, проверяю. Пункт в меню появился:

Теперь из любой папки можно консоль открыть
Жму на него, открывается консоль в этой папке. Круто. Даже с рабочего стола запускается! Кстати, с таской {bash::bash}
не заработало. Видимо потому, что в ней уже прописана папка.
Деление экрана
Я люблю открывать две-три консоли одновременно. В одной вкладке запущен дев-сервер, во второй ввожу всякие команды, например манипулирую гитом:

В одной вкладке висит вечный сервер, в другой пишу команды
Экран можно сплитить, если открыть окошко с вопросами про новую вкладку (Ctrl+Shift+T
, как я настроил) и выбрать New console split → To bottom или To right:

New console split → To right
Тыкать кнопки долго, нужны хоткеи, которые делят экран без вопросов, запуская bash в текущей папке. В меню «Keys & Macro» я нашёл какие-то на первый взгляд нужные команды «Split: Duplicate active ‘shell’ split to bottom» и to right, но у меня с ними не сохранялась папка после cd, а без этого неудобно.
В меню «Keys & Macro» есть свободные слоты «Macro N», куда можно вписать свои команды и хоткеи. У меня первыми свободными слотами были 12 и 13. В первый я добавил команду:
Shell("new_console:s50H", "", "{bash::cwd}")
s50H — это значит поделить (split) экран на 50% по горизонтали (Horizontal). Добавил хоткей Ctrl+S
(от слова Split). В следующий слот добавил деление по вертикали (V):
Shell("new_console:s50V", "", "{bash::cwd}")
Получилось так:

Сплит экрана с bash в текущей папке
Проверяю, как работает. Закрываю cmder и снова открываю. Он открывается в Desktop/Projects (левая панель). Я перехожу в папку sicamp и жму Ctrl+S
, экран делится по вертикали (правая верхняя панель). Теперь в этой панели захожу в папку Desktop/Projects/Test и жму Ctrl+Shift+S
, панель делится пополам и открывается правая нижняя:

Смотрю, как делится окно
Теперь наконец можно пользоваться.
Вот хоткеи для вкладок пачкой:
- Новая вкладка
Ctrl+T
- новая вкладка с настройкой
Ctrl+Shift+T
- открыть панель справа
Ctrl+S
- открыть панель снизу
Ctrl+Shift+S
- закрыть вкладку
Ctrl+W
.