LINUX.ORG.RU

Есть консольный текстовый редактор c настройкой хоткеев?

 ,


0

2

Добрый день, ЛОР.

Тут как-то давно, ещё по весне перемывали косточки очередному вимоподобному текстовому редактору, и @wandrien написал:

Реально, там нет никаких таблиц команд. Всё управление захардкожено

Я сегодня наткнулся на ту тему, и загнался вопросом: а есть ли вообще для линукса консольные текстовые редакторы, где можно переключать (в идеале — составлять свои) клавиатурные схемы? Захотел — вимовую раскладку включил, захотел — виндоподобную, захотел — олдфажную хоть в стиле WordStar.

Под DOS я такое видел, ещё в начале 90-х. А для линукса только всё гуёвое в голову лезет. Но ведь наверняка я чего-то не знаю (забыл), ну ткните же меня.

ИТОГИ: таки vim, а также joe и micro. Всем спасибо за ответы. Тему не закрываю, будут идеи — пишите.

★★★★★

Последнее исправление: hobbit (всего исправлений: 2)

Не знаю можно ли переделать vim, чтобы он всегда работал в режиме вставки, но все остальные моменты поддаются переконфигурированию. По идее emacs тоже должен уметь так делать.

einhander ★★★★★
()

Емакс считается за консольный? Для вима можно написать схемы в виде плагина. Что-то такое, например: rsi.vim. Только зачем? В виме идеальная схема, которую все прочие пытаются эмулировать.

bread
()
Последнее исправление: bread (всего исправлений: 1)

А для линукса только всё гуёвое в голову лезет

Я мож не совсем понимаю, а что тебе мешает в виме такое занастроить?

pihter ★★★★★
()
Ответ на: комментарий от einhander

Не знаю можно ли переделать vim, чтобы он всегда работал в режиме вставки

Всегда — не нужно. Командный режим во многих случаях действительно удобен.

А вот сделать так, чтобы режим вставки включался по умолчанию при запуске редактора — действительно интересно. Так можно?

hobbit ★★★★★
() автор топика
Ответ на: комментарий от hobbit

vim
А вот сделать так, чтобы режим вставки включался по умолчанию при запуске редактора — действительно интересно. Так можно?
hobbit
★★★★★

$ vim -c 'startinsert' FILENAME

и

~/.vimrc:

autocmd BufRead,BufNewFile * startinsert
LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

$ vim -c ‘startinsert’ FILENAME

еще vim -y FILENAME

Тут правда возникает давно решенная проблема выхода из вима :)

<C-o>:q!

habamax ★★★
()
Последнее исправление: habamax (всего исправлений: 1)
Ответ на: комментарий от bread

Только зачем? В виме идеальная схема, которую все прочие пытаются эмулировать.

Она хороша, да. Я кое-где проникаюсь её магией, правда, до конца ещё не проникся. Но есть и минусы. При редактировании русских да и других нелатинских текстов всякий раз при переключении в нормальный режим приходится переключаться на латиницу, а потом обратно. Ибо все команды латинскими буквами. Вне мира vim этой проблемы практически нет, всякие там Ctrl+S или F2 работают вне зависимости от раскладки.

hobbit ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Вне мира vim этой проблемы практически нет

Гы-гы-гы, бл*дь. Как приятно быть хоббитом. Сидишь в своей норке и носу наружу не высовываешь.

https://github.com/geany/geany/issues/1368
Hotkeys do not work in non-latin keyboard layout #1368 Open

https://bugs.launchpad.net/inkscape/+bug/458072
Inkscape Hotkeys are keyboard layout dependable Confirmed Medium Unassigned

https://bugzilla.gnome.org/show_bug.cgi?id=136280
Keyboard shortcuts with Latin letters don’t work in Non-Latin keyboard layouts
Reported: 2004-03-05 13:51 UTC by Nickolay V. Shmyrev

https://bugzilla.gnome.org/show_bug.cgi?id=769550
Siarhei Kuchuk 2016-08-05 11:49:17 UTC
Hello

Recently there was a long-waiting fix in GTK master for shortcuts for Windows. Users with non-latin keyboard defaults were not able to use any of shortcuts powered with GTK and now they can.

Link to the bugs
https://bugzilla.gnome.org/show_bug.cgi?id=768722
https://bugzilla.gnome.org/show_bug.cgi?id=136280

LamerOk ★★★★★
()
Ответ на: комментарий от bread

Офтопик: ещё в виме налетел на проблемку, правда, уже со схемой не связанную: когда пытаешься на маленьком разделе/носителе отредактировать и записать файл размера, сопоставимого с объёмом свободного места, vim ругается, что не может сохранить своп-файл и в итоге не сохраняет ничего.

Да, это проблема сильно специфичная и «не всем нужно», однако же мой любимый mcedit с таким справляется прекрасно. Может, где-то в vimrc можно подшаманить?..

hobbit ★★★★★
() автор топика
Ответ на: комментарий от hobbit

Может, где-то в vimrc можно подшаманить?..

Может, тебе всё-таки записаться на курсы начинающего пользователя vim’а, раз уж религия запрещает тебе ПРОЧЕСТЬ НАКОНЕЦ ДОКУМЕНТАЦИЮ.

set noswapfile
LamerOk ★★★★★
()
Ответ на: комментарий от hobbit

Ибо все команды латинскими буквами

" внутренняя раскладка, переключение через CTRL-6
set keymap=russian-jcukenwin

" или если переключение в OS
set langmap=йцукенгшщзхъ;qwertyuiop[]
set langmap+=фывапролджэё;asdfghjkl\\;'\\\
set langmap+=ячсмитьбю;zxcvbnm\\,.
set langmap+=ЙЦУКЕНГШЩЗХЪ;QWERTYUIOP{}
set langmap+=ФЫВАПРОЛДЖЭЁ;ASDFGHJKL\\:\\"\\~
set langmap+=ЯЧСМИТЬБЮ;ZXCVBNM<>
set langmap+=№#
habamax ★★★
()
Последнее исправление: habamax (всего исправлений: 1)
Ответ на: комментарий от LamerOk

Признавайся — ты специально в комментарий вставил плохо запиканный мат, чтобы я его снёс по 5.1, а у тебя появился повод покричать в спецразделе, что я «тру неугодные комментарии»?

Ну преувеличил я, да. Я тоже регулярно сталкиваюсь с тем, что мнемонические хоткеи из меню типа «В_ы_ход» хреново работают, если эти меню не на английском. И это реально бесит.

Однако же в данном случае я говорил про базовые вещи. Ctrl+S и F2 в разных редакторах — это сохранение файла, у меня с ними проблем не было. Хотя… я вижу, что почти все ссылки про GTK-софт, может, дело именно в этом. :)

hobbit ★★★★★
() автор топика

Всем спасибо за ответы!
Тему отмечу решённой чуть позже — вдруг ещё кто что предложит. :)

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от sergej

Эта кнопка используется примерно никогда.

Кроме редкой замены куска текста по регекспу и смены кодировок файла, не могу даже вспомнить, для чего бы ещё ей пользовался.

LamerOk ★★★★★
()
Ответ на: комментарий от einhander

Когда запускаешь vim, чаще всего нужен именно командный режим. Потому что начинать писать новый файл с позиции (0, 0) требуется гораздо реже, чем редактировать существующй.

А в существующем после открытия надо перейти к нужной позиции, и, возможно, не просто вставить, а заменить, например.

Допустим у меня скрипт:

from frobnication import frobnicate

def main():
    result = frobnicate('/etc/frob-defaults.conf')
    print(result)

main()

И мне надо поменять путь к файлу, например, на sys.argv[1]. Тогда после запуска vim проще сделать что-то вроде 3j (4G), f', ci(, sys.argv[1], Esc, :wq.

Если бы автоматически включался режим вставки, то его гораздо чаще пришлось бы выключать.

emorozov
()
Ответ на: комментарий от anonymous

Это шифт надо жать, а я ж не осминог-имаксер.

LamerOk ★★★★★
()

Я сегодня наткнулся на ту тему, и загнался вопросом: а есть ли вообще для линукса консольные текстовые редакторы, где можно переключать (в идеале — составлять свои) клавиатурные схемы? Захотел — вимовую раскладку включил, захотел — виндоподобную, захотел — олдфажную хоть в стиле WordStar.

Но зачем это нужно? Звучит как какая-то пытка.

anonymous
()
Ответ на: комментарий от ashot

Лень было смотреть сколько уже его написали

burato ★★★★★
()
Ответ на: комментарий от anonymous

Многие люди хотят, чтобы был консольный, но позволяющий сохранить «гуёвые» привычки, чтобы не переключать мозги постоянно.

Да, кто-то наоборот, перестроит себе рабочую среду под вим везде, а у кого-то такой возможности может и не быть.

Выбор — это лучше, чем его отсутствие.

hobbit ★★★★★
() автор топика
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Если это все разные люди, то почему бы им не выбрать себе разные текстовые редакторы (nano, micro, vi, vim, emacs) в соответствии с предпочтениями? Если прямо вопрос в том, чтобы это был один редактор, то скорей всего - emacs с разными настройками (но это не точно).

anonymous
()
Ответ на: комментарий от ashot

Пчёл, ты понимаешь, что без своего .vimrc у тебя нет никакого vim’а?

nnoremap w <C-w>

Без .vimrc ты так и будешь из режима вставки в нормальный режим Esc’ейпом переходить.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

И вообще, смысл vim'а вовсе не в том, чтобы считать на экране буквы, а потом жать 5h или 7j, как об этом пишут в протухших мануалах из 80-ых. Смысл vim'а в том, что

  • есть набор операций над разными объектами - единицами структуры текста (строки, «слова», знаки), буферами, окнами, функциями программного кода, блоками комментариев, файлами и т.д., предоставленных тебе редактором и подключёнными плагинами.
  • есть почти бесконечное множество хоткеев из одной или более цепочки единичных нажатий клавиш

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

Причём всё это относительно просто настраивается (никакого xml), сохраняет обратную совместимость на уже теперь десякти лет и работает с отличной скоростью. Впрочем, с учётом того, что теперь остался только электрон, и даже жавамонстры уходят в прошлое, последнее не так уж и сложно.

LamerOk ★★★★★
()
Ответ на: комментарий от hobbit

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

Частично решается удобным и однозначным переключением языка. Также никто не мешает назначить на какой-нибудь фф выход из режима вставки.

einhander ★★★★★
()
Ответ на: комментарий от LamerOk

Эта кнопка используется примерно никогда.

Я раньше тоже не особо пользовался командами, а потом распробовал. Часто проще команду набрать из истории, чем вспоминать хоткеи. Раньше мапил массу всякого ненужно через Leader, сейчас почти дефолт.

bread
()
Ответ на: комментарий от sergej

кнопка ломается

Скорее не кнопка, а мизинец. Некоторые перевешивают на пробел, но у меня не прижилось. Как и пробел в качестве лидера.

bread
()
Последнее исправление: bread (всего исправлений: 1)
Ответ на: комментарий от hobbit

У вас дефолтный .vimrc? Вот с этого можно начать: sensible.vim. Свопфайл я лично всегда отключаю, но если вы открываете гигантские файлы, то так делать не надо.

bread
()
Ответ на: комментарий от LamerOk

nnoremap w <C-w>

Клёво, надо тоже так сделать. А w перевесить на пробел.

bread
()
Ответ на: комментарий от bread

Файл на 6 МЕГАбайт в этом контексте считать гигантским или нормально?

На той машине, про которую шла речь, 4 Гб ОЗУ и 64-разрядный линукс, если что (нет, это не домашний десктоп).

hobbit ★★★★★
() автор топика
Ответ на: комментарий от LamerOk

Считать тоже ещё полезно. У меня по умолчанию включен режим rnu, с ним легко переместиться на любую строку в пределах экрана. Удалить 3-5-7 строк или слов тоже достаточно просто. Обычно я вижу сколько в последовательности строк или слов без явного подсчёта, когда их не более 5-7. А больше чаще всего и не нужно.

То есть, согласен, что большинство туториалов и статей по vim’у способны отпугнуть новичков: «Чё, ещё и считать уметь надо? А я думал, что ещё в школе это оставил, мне надо чтобы ткнул в кнопку и красиво!» Но это ещё не делает счёт в vim бесполезным, просто надо статьи писать по-другому, и сначала подчеркивать преимущества более понятные тем, кто не может в голове больше пары фактов удержать.

emorozov
()
Ответ на: комментарий от hobbit

А не нужно «переключаться» с латиницы. Держишь клавишу — кириллица, отпустил — латиница.

t184256 ★★★★★
()
Ответ на: комментарий от hobbit

если тебе интересен подход как в вим, модальное редактирование, но хочется чего-то странного, посмотри vis. для стандартного редактора конфиг файлов, небольших скриптов очень удобен, множественные курсоры, редактирование на основе структурных регулярных выражений как в sam из Plan9 (в это я не вникал), конфиг на lua. по поводу раскладки – vis:command(langmap ролд hjkl) как пример, добавить в конфиг. маленький, шустрый. хотя и не подойдет тем людям, что из vim ide делают.

anonymous
()
Ответ на: комментарий от t184256

Карфаген должен быть разруен!

anonymous
()
Ответ на: комментарий от hobbit

Файл на 6 МЕГАбайт в этом контексте считать гигантским или нормально?

Если у вас 4 МЕГАбайта памяти, то да. Суть в том, что при ограниченном дисковом пространстве свопфайл нужно отключать, а если памяти не хватает, то не нужно. В современных реалиях свопфайл вряд ли понадобится. Теоретически, еще из него можно восстановиться если вы комп из розетки выдерните нечаянно. Короче, ненужно.

bread
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.