Previous Entry Share Next Entry
2016-01

vim/emacs/прочее use case: копипаста

Вот кто бы сделал для Linux "глобальные пресеты", чтобы подобные базовые вещи типа хоткеев для работы с текстов, с окнами, приложениями, файлами и т.д. распространялись на ВСЕ приложения, а не только на свое-любимое?

Плюс, применялись бы удаленно при ssh-сессии, screen/tmux и т.д. и т.п. И стандарт на clipboard.

Серьезно, это процентов 40% из того, что мне в Linux не хватает и я не верю, что когда-нибудь пофиксят

Оригинал взят у metaclass в vim/emacs/прочее use case: копипаста
А вот объясните мне наконец, как правильно под линуксом заниматься копипастой?
Т.е. в винде в 99% случаев я делаю так: открываю фар-notepad-вижуал-студию-ворд-дельфи, нахожу нужную строку, далее Shift-стрелки, выделяю нужный мне кусок, потом Ctrl-Insert - копирую, затем открываю нужный файл и делаю Shift-Insert 100500 раз, размножая нетленку. Если же нужно заменить - то сначала выделяю заменяемый текст. Если текст таскается между разными программами - то переключение по alt-tab. Т.е. все производится с клавиатуры, причем весьма быстро и с минимумом нажатий кнопок и перемещений пальцев.

Как такое же сделать, например в vim или emacs, само собой, без всяких средних клавиш мыши, иксов и прочей несуществующей фигни?


  • 1
maxim April 19th, 2012
Emacs поддерживает CUA режим, соответственно SHIFT+CURSOR копипаста там работает само собой, без всяких средних клавиш мыши.

wizzard0 April 19th, 2012
речь не о емаксе, и не о виме, и не о gedit/mcedit/whatever

речь об унификации

maxim April 19th, 2012
В линуксе больше унификации чем в виндовсе. Начнем с того что приложения в Виндовс выглядят совершенно не унифицироваано, шесть одновременных версий comctl32 напрмиер.

wizzard0 April 19th, 2012
При этом почему-то у всех браузеров Ctrl+J открывает "Downloads", Alt+"<-" возвращает назад, Ctrl+A выделяет все элементы в браузере, в Explorer, в Word, etc, Tab переключает между элементами в окне, Shift+F10 вызывает контекстное меню и т.д. и т.п.

А темы оформления - это дело вкуса.

zhengxi April 19th, 2012
шесть одновременных версий comctl32 напрмиер.

Мне, как юзеру, это совершенно не мешает.
А вот две одновременные версии клипборда в линуксе - таки да.

bydl0coder April 19th, 2012
Так там все opinionated. Емакс нужен тем, кому не нравится вим, и наоборот.

justy_tylor April 19th, 2012
Одно из проклятий линуха - наличие emacs и vim. Люди привыкают жрать кактус, и уже не понимают, что пользовательский интерфейс должен быть удобным, а не приводящим к RSI.

wizzard0 April 19th, 2012
Я пользуюсь Sublime Text'ом :)

justy_tylor April 19th, 2012
А мы сейчас прототайпами занимаемся, на тему навигации между редактируемыми документами в стиле Tree Style Tab и Scrivener. Мне интересно, получится ли довести это до универсальности, чтобы и для датасетов, и для обычного кода, и для смертьжабасотона100500исходников.

wizzard0 April 19th, 2012
Интересно. А можно на это как-нибудь поглядеть?

justy_tylor April 19th, 2012
Пока нет, рисёч. Если пойдёт гладко, то в следующей версии .15926 Editor (май/июнь).

sab123 April 19th, 2012
vi - это как раз самый-самый удобный пользовательский интерфейс для писания программ. На Виндовсе что-то писать страшно неудобно из-за ужасной среды разработки.

w00dy April 19th, 2012
Можно подробнее об удобствах.

sab123 April 19th, 2012

Я тут стал думать, и причин нашлось много. Без определеного порядка:
* Удобно двигать блоки влево-вправо (хотя может и IDE до этого нынче доросли).
* Не портит табуляции.
* Метки с быстрым переходом назад на них. Я всегда использую как минимум 3 метки. Очень, очень важная вещь, ее отсутствие меня страшно убивает.
* Поиск-замена с регулярными выражениями. В vim еще лучше, история поисков-замен и прочих команд.
* Поиск-замена в блоках строк.
* Фильтрование блоков строк через внешние программы.
* Быстрый переход к другой стороне скобок по %.
* Быстрое переключение между двумя последними файлами по ^^. Никаких уродских табов, никаких уродских мышей. Очень удобно для копирования многих кусков между двумя файлами.
* (Не часть vi но часть юниксной консоли и Гнома, если его правильно настроить): переключение экранов по ALT-Fn, позволяющее открыть много редакторов с разными файлами и легко переключаться между ними (никаких уродских табов, никаких уродских мышей).
* Командная философия означает, что все редактирование происходит в виде постоянного написания и исполнения микро-макросов, с повтором по точке. Например, d$ удаляет все до конца строки. Поэтому когда надо поудалять всякое странное в концах строк, делаем один раз d$, а потом просто движемся по строкам и нажимаем точку. Или вот если два соседних символа оказались перепутаны, как поменять их местами? В vi нажимаем xp. В IDE нажимаем Shitf-стрелку, ^X, стрелку, ^V. Пока такое пронажимаешь, проще обе буквы удалить и напечатать заново.

Вот этот командная философия - это то, что тяжело прочухать, впервые увидев vi. А когда она прочухана, то оказывается, что она - единственно правильная.

plumqqz April 19th, 2012
+1
Не в виае где-то через час маханий руками начинаешь ощущать себя дирижером. К концу дня - то ли баянистом после свадьбы, то ли гусем в конце миграции.

wizzard0 April 19th, 2012
как многолетний пользователь VS скажу, что это одна из немногих софтин, которые со временем лучшеют. но 6 и 2003 были риальне страшными, факт.

хотя я не брезгую пописывать код в sublime, ideone, notepad и прочих мелочах. а vi мне лень тюнить и учить, но временами тоже пользую.

thedeemon April 20th, 2012
Я тут относительно недавно прикупил Visual Assist X, и шестая студия внезапно стала очень даже ничего. А более поздние версии на ее фоне очень тормозные и громоздкие.

maxim April 19th, 2012
Проблема явно надуманая :-)

wizzard0 April 19th, 2012
Скажи еще, что clipboard не нужен, или что ты никогда ssh не используешь :)

maxim April 19th, 2012
Еще раз повторяю с ssh никаких проблем. Постоянно вставляю в терминал независимо от того что там открыто MC, VIM, EMACS или SH.

_winnie April 19th, 2012
Признайся, есть проблема с копированием многострочного текста в vim!
Там иногда забываешь нажать i и :set paste, ага? А потом :set nopaste?


_winnie April 19th, 2012
Сижу из-под винды по ssh на куче хостов. Проблема для меня вдвойне актуальна. Учитывая ублюдочность windows-cmd.exe-cygwin-консоли - втройне, особенно с кириллицей :)

Когда сидел из под убунты - то для меня всё было стандартно, именно средней клавишей мышки вставлял строчки из одного терминала в другой. Это то, чего мне очень не хватает под виндой :)

Изредка (изредка!) на подмогу вызывал xclip когда надо по хитрому скопировать 100 страниц текста типа ssh host 'cat x.txt' | xclip и xclip -o | ssh host 'cat > x.txt'

в vim к сожалению иногда надо делать :set paste, что бы скопировать на удалённый хост именно из буфера винды/x-windows с корректными отсупами.

fi_mihej April 19th, 2012
>> именно средней клавишей мышки вставлял строчки из одного терминала в другой. Это то, чего мне очень не хватает под виндой :)

Ну это-то как раз не проблема: http://sourceforge.net/projects/console/. Наткрулся на сабж, когда смотрел перечень дополнений к VS 2010 (дополнение вызывает предварительно установленный сабж, для папки проекта).

чем крут vi

livejournal April 19th, 2012
Пользователь sab123 сослался на вашу запись «чем крут vi» в контексте: [...] Зашла тут в http://wizzard0.livejournal.com/239893.html?thread=1726997#t1726997 [...]

dmytrish April 26th, 2012
Це теоретично можливо, але на практиці — це все одно що ввести метричну систему в США: дуже багато історичних нюансів, та й нащо?
На практиці спостерігається зворотний процес: купа другорядних програм (yi, QtCreator, IDLE, елементи в Opera, Okular і т. п.) обростають пресетами клавіатури а ля Emacs/Vim.Крім того, KDE мене цілком влаштовує в плані гомогенності та гнучкості налаштування, набагато більше ніж віндоус, а консоль — це свій окремий світ, із своєю історією і законами, в якій набагато зручніше користуватись потоками, конвеєрами, файлами, іменованими пайпами, ніж убогим буфером обміну (вся юніксова файлова система — це один величезний і зручний буфер обміну).

У багатобуферності є свої сильні сторони: можна зберігати кілька шматків тексту одночасно. Да, це вносить певні незручності, але вони для мене некритичні і питання звички.

Щодо обміну з ssh: не користувався Windows-клієнтами, але під лінуксом/маком все просто: {Ctrl-Shift | Cmd }-C/X/V для буфера DE, виділення/середня кнопка миші — для буфера X Window, сильного ускладнення порівняно з Windows не бачу, зате з’являється різноманітність.

  • 1
?

Log in

No account? Create an account