Pull to refresh

Comments 71

У меня с Vim одна проблема, из-за которой я его обхожу стороной. Заходишь по SSH на новый сервер, набираешь `vim some_config.conf`, щёлкаешь мышью чтобы вставить текст из буфера обмена твоего компа в консоль... И хрен там плавал, VISUAL_SUKA_MODE !!!. Который нельзя выключить из редактора, а надо его закрыть, найти vimrc который может быть в одной из нескольких локаций, вписать туда строку, сохранить, и открыть конфиг снова.

Поскольку я по SSH залезаю обычно чтобы вставить один кусок конфига и забыть, то эта подготовка занимает больше, чем сама работа. Поэтому только nano.

Если кто знает, как вставить кусок текста c винды по SSH не выключая эту хрень, расскажите. И нет, :set paste через SSH не помогает.

Можно вставку делать ctrl-shift-v или shift-insert (в command-mode или insert-mode)
Работает для полностью голого .vimrc
Может тут от терминала, конечно, зависеть тоже.

Мне ещё помогает зажимать Shift при операциях мышью (Shift+MidClick для вставки), но наверняка зависит от терминала

:set mouse-=a спасёт в данном случае

Заходишь по SSH на новый сервер, набираешь vim some_config.conf,
щёлкаешь мышью чтобы вставить текст из буфера обмена твоего компа в
консоль... И хрен там плавал, VISUAL_SUKA_MODE !!!. Который нельзя
выключить из редактора, а надо его закрыть, найти vimrc который может
быть в одной из нескольких локаций, вписать туда строку, сохранить, и
открыть конфиг снова.

Не пробовали перед вставкой нажать на клавиатуре кнопку "i" (или "a", или "Insert") для переключения редактора в режим редактирования текста?

Можете чуть подробнее описать суть проблемы? Я на работе только и делаю, что хожу с рабочей Win10 по ssh на линуксовые сервера. Конфиги vim по умолчанию. И не было проблем со вставкой буфера обмена в конфиг по ПКМ (правой клавише мыши).

в том и дело, переключается в режим вставки, но сама вставка - неудачная, нужно нажать esc, u u u, :set mouse=
после этого переходим в режим вставки и вставляем. Сам часто сталкиваюсь и к большому сожалению не знаю что вписать на своём компе, чтобы это при подключениии по ссш перестало вылезать...

Непонятно чей это баг, настроек минт/убунты, пакета или дефолтов вима...

Что-то странное. По-умолчанию у вима normal mode, а не visual. Ну, а так Ctrl+Shift+V/Ctrl+V/Shift-Insert - то бишь дефолтная системная вставка - должен сработать. А если мышь включена, то можно ещё ПКМ-> Insert сделать.

Мышь по ssh. Кажется я что то не знаю про ssh.

Прямо таки перекличка Шелдонов с только им понятными шутками и красивостями.

У меня есть знакомый довольно сильно напоминающий Шелдона, но, как оказалось, он не знает, кто такой Шелдон :)

Теперь-то знает?

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

Шелдон Шрёденгера какой-то получается))

Я рассказал ему о существовании Шелдона и сериала про него, но на сколько я знаю, он так и не удосужился ознакомиться ни с одной серией этого сериала.

Мой лучший друг почти копия Шелдона во всех отношениях. Знает этого персонажа и он ему очень нравится. Но почему-то очень обижается когда его с ним сравнивают (оказывается я далеко не первый, кто заметил сходство). Я его успокоил, сказал, что оригинальный Шелдон бы тоже обиделся, если бы его сравнили с тобой )

Но почему-то очень обижается когда его с ним сравнивают

Читатели этих комментариев тоже оказались без чувства юмора и сильно обиделись, накидав минусов в карму )))

Когда работаешь админом и у тебя порядка 300+ хостов, на все эти красивости забиваешь и юзаешь стандартные настройки nano и vim. Потому что, на каждый хост тащить свой конфиг - это утопия.

sshfs + какой-нибудь GUI для удобного монтирования 300+ хостов?

спасибо за sshfs) а расскажите про "какой-нибудь GUI для удобного монтирования 300+ хостов?"

мне как DevOps уровня "любитель" возможно пригодилось бы)

Жаль что не работает с ключами с парольными фразами

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

Но эта история не сильно лучше, потому что потом на хосте нужно поработать под рутом - и привет

Так что проще привыкнуть к дефолтному поведению, навесив минимум рюшек для основного кейса (синтаксис там подсветить, строчки показать)

А мы точно решаем какую-то проблему, а не создаём десять новых?

В целом довольно осмысленный вариант что-то вроде (при первом входе)


hg  clone repa_with_dot_files

Это решит проблему не только с настройками vim, но кучи всего, чем пользуетесь.
И можно в каком нибудь login.conf прописать что-то типа hg pull -u (git pull) и тогда свежая версия будет прилетать.


Root не нужен.
Но должен быть конечно установлен hg (или git).
Не суперуниверсально, но в некоторых зоопарках сработает.

Ага, т.е. мне надо тащить git на все хосты, прокидывать доступ к репозиторию (что само по себе та ещё задачка), на всех хостах править login.conf. А потом придёт напарник и начнёт негодовать, что ему vim/nano неудобен, он хочет mcedit чтоб по умолчанию был.

Для 300+ хостов стоит использовать Ansible, Chef или Puppet для разбрасывания нужных конфигов. Странно что это не делается при таком количестве хостов.

Когда у тебя разнородные хосты от Дебиан 7 до Дебиан 12, присыпано всё это Центосью двух или трёх разных версий, плюс, периодически появляются странные хосты от клиентов, настроенные по их шаблонам. То написать плейбук даже для унификации конфига Заббикс-агента становится задачей со звёздочкой. При этом писать плейбук под новые хосты тоже сомнительно, т.к. мы не создаём виртуалки сотнями в день, даже десятками в день не создаём, и вот поднял, например, я кластер Кассандры, когда понадобится поднять ещё один, либо версия актуальная сменится, либо машины, куда надо будет ставить эту кассандру, будут на столько "искаверканы" шаблонами клиента, что ручная установка и настройка кассандры уже как-то и не кажется проблемой.

Я не осуждал ни в коем случае. Думаю, все через это проходили и эту боль можно понять. Чуть больше года назад я так же попал на неоднородную среду. Были в том числе настолько древние машины, что обновлять их даже с архива невозможно. А надо, элементарный пример в виде curl, который не мог ходить по https без опции -k просто потому что корневые серты протухли.

Первое что сделали: приняли концепцию стада вместо питомца. Второе: ограниченное время использования. Сервер со сроком год считается устаревшим и должен быть заменён. (Без фанатизма, слишком много неочевидного попадалось и попадается, шутили на тему DevOpsArchaeologist.) В плейбуках на начальных этапах when os_family появилось немало, но это был только на переходный период. Спустя год работы, постепенно (другие задачи никто не отменял же) приближаемся к однородной массе. Заведение учёток в БД и на серверах, раскатка нужных пакетов и обновление - всё через простые и стандартизированные плейбуки. В дальнейшем цель не только однородность и повторяемость, а так же быстрая замена серверов, но и запрет заходов на ноды (сервера, воркеры и тд, как кому угодно называть) по SSH кроме аварийных ситуаций. Задач по деплоям, сопровождению и мониторингу хватает, чтобы мы ещё на работу с серверами тратили массу времени.

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

Где-то в идеальном мире можно менять ПО раз в год. У нас это мало где получается по разным причинам.

В таком случае могу только пожелать, чтобы ситуация становилась лучше, настрой не падал и хорошие идеи и практики всё чаще находили место в рутине.

Как говорилось в старом анекдоте: если эти парни говорят что это невозможно, значит просто им нужно чуть больше времени. :)

Часто упираешься в зависимость от программистов, что у них библиотека не умеет в новую версию БД, и в договора с клиентами, что их о работах надо предупреждать чуть ли не за полгода, а сами работы проводить исключительно ночью в полнолуние и не дольше 15 минут. Но это уже проблема менеджеров, что заключают такие договора и снова программистов, что софт не умеет в прозрачное резервирование.

Из-за этого всего например обновление Проксмокса с 6 на 7 версию длиться уже 8 месяцев и до сих пор не закончено. А уже восьмая версия релизнулась.

Странно, что при порядка 300+ хостов, хомяк у всех локальный.

Это не рабочие станции, нафига там синхронизация хомяка?

Что бы гарантировать единое окружение сервисных пользователей хотя бы.

Ну, попробуйте конфиг от nano версии (какая там версия была в Debian 7) скормить версии из Debian 12.

И вернусь к вопросу выше: "А мы точно решаем какую-то проблему, а не создаём десять новых?"

Когда работаешь админом и у тебя порядка 300+ хостов, на все эти красивости забиваешь и юзаешь стандартные настройки nano и vim. Потому что, на каждый хост тащить свой конфиг - это утопия.

утопия это управлять 300+ хостами в ручную, а если у вас есть условный ansible, то не вижу проблем в копировании конфига, хоть 1000+ хостов, если он реально упрощает ежедневные рутины

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

Этот случай явно не про автоматизацию. Если у человека таких хостов 300+, то просто жаль его. Это не работа, а фиг знает что )))

Слава богу, такие хосты единичны. Я тут больше про то, что вот такая тонкая настройка текстового редактора, во-первых, особо не нужна, т.к. редактируешь в основном конфиги, в которых даже если нет вообще никакой подсветки синтаксиса, то это нисколько не усложняет работу, а во-вторых, задача не первоочередная. Выше я уже приводил проблемы, с которыми мы сталкиваемся, и вот красивый vim (на самом деле, я предпочитаю nano, а мой напарник mcedit) это где-то в конце списка, когда совсем скучно станет.

Когда работаешь админом и у тебя порядка 300+ хостов, на все эти красивости забиваешь

Вы правы. Все скриншоты, которые есть в статье, это скриншоты программистов, у которых основным редактором и IDE является vim/neovim. Я сам не системный администратор, поэтому советов давать не хотел бы, хотя примерно представляю, что нужно сделать.

Есть у меня сомнения на счёт программистов, которые пишут код в vim'е. Но я не программист, потому своё мнение, думаю, стоит оставить при себе

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

она мне наоборот начинает мешать

Оооой, как я люблю сообщения об ошибок от PowerShell (красное на чёрном, будь оно неладно!).

Поделитесь сомнениями?) любопытно стало

Скажу так: я сам пишу код в nano, т.к. это ближайшее, что оказалось под рукой, когда надо было писать код. Но я это делаю скорее факультативно, нежели это основная моя работа.

При этом, у нас есть целая команда разработчиков на Java, и на сколько я знаю, они код пишут не в консольных редакторах. Есть пара знакомых программистов на C++ и C#, они тоже не используют консольные редакторы.

А я знаю программистов на С++, которые отлично себя чувствуют в VIM, при этом умея работать с VS

Тут такое дело: nano — простенький редактор без киллер-фич и расширяемости. Vim, в свою очередь, во-первых, даёт мощную систему команд, которая многим нравится, во-вторых, буквально парой плагинов превращается во вполне полноценную универсальную IDE для широкого диапазона языков. А ещё он очень быстрый.


Поэтому его особенно любят разработчики, которые часто переключаются между языками или пишут на малопопулярных языках, для которых нет крупных коммерческих IDE. Но не только они.

Есть у меня сомнения на счёт программистов, которые пишут код в vim'е.
Но я не программист, потому своё мнение, думаю, стоит оставить при себе

Я программист и у меня сомнений нет.

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

Я не дальтоник :), но вы не пробовали специально подобрать цветовую схему с наиболее различимыми для вас цветами?

Пробовал. И в целом меня более-менее устраивает стандартная схема в nano. А вот mcedit со своей стандартной схемой бесит, особенно своей любовью красного/розового на синем.

И чтобы, как тут уже несколько человек советует, не заниматься построением инфраструктуры по размножению красивого nano, я настроил себе цвет консоли по умолчанию на зелёный цвет, а всё остальное уже как есть.

Вот заведётся distant то можно будет не выходя из вима со своим локальным конфигом просто коннектиться на удалёнку. А пока да, без клона конфигов никуда.

Его иногда выпиливают из дистрибутивов. А ещё есть ee

Я бы постучал в окно машины с вим-наклейкой. Вряд ли водитель из нее вышел.

Конечно, ведь это операционная система.

Осталось в неё хороший текстовый редактор завести

Я не очень разбираюсь в unix и vim в частности, но если у вас есть желание, имеет смысл обратить внимание на astrovim

Вопрос-оффтоп, а есть ли под винду дефолтный консольный текстовый редактор? Вот чтоб на 10/11 открыл cmd/ps/windows terminal набрал условный nano/vi file.txt и пошел дальше, без переключения фокуса на notepad/code.

P.s. знаю что nano и vim можно воткнуть, знаю про wsl, тут вопрос про стандартный и из коробки

Сам не пользуюсь виндой, из любопытства спросил ChatGPT 4:

In Windows, there is no built-in standard console-based text editor like vi or nano in Unix-based systems. However, Windows does offer some basic text editing options that can be used within the Command Prompt:

1. Notepad

  • Description: Not a console-based editor, but you can launch Notepad from the Command Prompt.

  • Usage: Type notepad followed by the name of the file you want to edit. This opens the file in the Notepad GUI application.

2. Edit (Deprecated)

  • Description: In older versions of Windows (up to Windows XP), there was a command-line utility called edit.

  • Usage: Simply type edit in the Command Prompt.

  • Note: This utility has been removed in modern versions of Windows.

3. Copy Con

  • Description: Allows you to create a text file and write text to it directly from the Command Prompt.

  • Usage: Type copy con followed by the name of the file.

  • Note: This is a rudimentary method and not suitable for extensive text editing.

4. PowerShell ISE

  • Description: Not strictly a console-based editor, but PowerShell Integrated Scripting Environment (ISE) provides a text editor for PowerShell scripts.

  • Usage: Open PowerShell ISE from the Start menu or by typing powershell_ise in the Command Prompt.

5. Third-Party Options

  • Description: Many users opt for third-party solutions like Vim for Windows, Emacs, or installing a Unix-like environment like WSL (Windows Subsystem for Linux).

  • Usage: Download and install the third-party editor of your choice.

Нет, только сторонние. В 32-битных редакциях есть EDIT из MS-DOS, но кому в 2023 году нужна 32-бит винда?

Сторонних много, через winget можно и nano воткнуть и nvim, интересовал именно встроенный, чтобы можно было прийти в АСУ ТП настраивать железку, без связи, без интернета и где все дополнительное ПО строго по разрешению

есть ли под винду дефолтный консольный текстовый редактор?

Дефолтного нет, выручает встроенный в FAR Manager. Есть куча расширений под него, кастомизируемся при необходимости и желании.

Как, как можно в такую статью вставить нерабочий bash скрипт.

Я прям разочарован...

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

#!/bin/bash -

LIMIT=5

# one of (hour, day, week, month, year, all)
PERIOD="year"

clear
for subreddit in neovim vim vimplugins vimporn;
do
        echo "$subreddit"
        LINK="https://www.reddit.com/r/${subreddit}/top/.json?t=${PERIOD}&limit=${LIMIT}"
        curl -s $LINK|python -mjson.tool|grep permalink|  cut -d\" -f4|sed 's!^!https://www.reddit.com!'
        sleep 10
done

О, спасибо. Правда вставлять python еще и с модулем в баш, не комильфо. Проще же более подходящий jq для этого

curl -s $LINK|jq '.'|grep permalink|cut -d" -f4|sed 's!^!https://www.reddit.com!'

Ну или раз уж jq, то зачем нам еще какие-то утилиты

curl -s $LINK|jq '"https://www.reddit.com"+.data.children[].data.permalink'

curl -s $LINK|python -mjson.tool|grep permalink| cut -d\" -f4|sed 's!^!https://www.reddit.com!'

Обработка данных в 21 веке: грепаем подстроку неважно где и неважно когда, потом не глядя чего-то режем и склеиваем.

Sign up to leave a comment.

Articles