LINUX.ORG.RU

code,vim

 , ,


0

1

охота (на) vscode со всеми преимуществами vi(m)

какие плуги инить?

ps:(сеанс граммалогии) code‖vim:

c o d e
 v i m 
---------------
cvoidme
=============
CvoidME

А я обратное хотел бы, в виме, но со всеми преимуществами vscode. Больше всего в виме быстрого(без переключения режимов) копипаста не хватает.

Ну и ответ от поисковика:

«In order to use Vim with VSCode, you need to install the vim-mode plugin. To do so, open VSCode and go to the Extensions tab (Ctrl+Shift+X). Then, search for vim-mode and click Install. Once the installation is complete, you will need to restart VSCode.»

Loki13 ★★★★★
()

В vscode есть пара расширений, которые весьма неплохо реализуют vim-движения. Одно время ими пользовался, сейчас прекратил. Придется некоторые родные хоткеи перебиндить.

Для себя решил оставить vim в консоли для простых вещей, в vscode использовать дефолт.

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

Мышкой выделить скопировать и по p вставить?

Это не очень быстро и в консольном виме не особо(удобно) и работает. Быстро это для меня зажать шифт с контролом нажать 2 раза вправо(выделится 2 слова), нажать комбинацию для копирования переместить курсор в нужное место и нажать комбинацию для вставки. В виме придется режимы переключать туда сюда. Думаю дело привычки, но так и не смог привыкнуть.

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

А я обратное хотел бы, в виме, но со всеми преимуществами vscode.

Чисто текстовый интерфейс для чего-то более сложного чем mc или nano, это заранее обреченная на провал идея. Когда-то во времена мамонтов, это была вынужденная мера ввиду слабости техники. Однако в 2024м ограничевать графические возможности программы выводом символа в знакоместо - это тупость и позерство.

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

Быстро это для меня зажать шифт с контролом нажать 2 раза вправо(выделится 2 слова), нажать комбинацию для копирования переместить курсор в нужное место и нажать комбинацию для вставки. В виме придется режимы переключать туда сюда.

Я как раз пытался уйти от зажимания контрола стрелок и потом комбинации для копирования. Считаю, что это сильно медленнее чем переключить режимы в Вим. Чаще редактирую обычный текст, чем что-то программерское.

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

По крайней мере этот юз кейс в виме и так быстрее. И режимы переключать не надо.

Копирование:
Ctrl+Shift+Right, Right, Ctrl+C
y2w

Вставка:
Ctrl+V
p

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

правильное с точки зрения кого? Мир выбрал правильное на взгляд пользователей развитие - это vscode, sublime text, idea и прочие популярные программы редактирования текста. То, что два с половиной гика нафантазировали себе какую-то гипотетическую правильность, которая нафиг никому не нужна, только лишь подтверждает оторванность узких технических специалистов от реального мира.

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

Быстро это для меня зажать шифт с контролом нажать 2 раза вправо(выделится 2 слова),

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

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

проблема(дин прог ага) в каком объёме оптимальность

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

пока вычмощь «даровая» то чем кривее интерфейс тем он лучше укореняется в «мокрых_мозгах»

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

какие тогда причины не взлёта

Те же, что и у OpenBSD: авторам не нужно, чтобы оно «взлетало», и сложно их за это осуждать.

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

Что надо принимать чтобы понимать такой набор букв?

Надо последовательно прочитать все срачи про метапрог. В финале ты постигаешь дзен и понимаешь:

твой русский хуже твоего мыслительного. так что уткачи.

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

можно за 15 минут маппинги написать чтоб было в точности как тебе надо

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

В виме придется режимы переключать туда сюда.

Зачем переключать? yt$, yf., или что-нибудь тсходя из контекста задачи.

andreyu ★★★★★
()

Я пользуюсь в основном VSCode + VSCodeVim, убрал часть биндов с Ctrl, очень удобно.

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

совершенно верно.

в нём, в отличие от всех остальных, нет недостатков.

mrjaggers
()

У vim нет никаких преимуществ. На самом деле он придуман для аметистов, которые код по ssh редактируют (не надо так делать, надо использовать git), а поэтому им очень удобно иметь различные сочетания типа сотрем 5 символов слева d5h одной комадой вместо отправки 5 нажатий на ESC с ожиданием ответа. Те с момента появляения «сверхбыстрого» инторнета 512кбит/с он отжил свое

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

Шеф жаловался, что расширение для vim очень тормозит. До сих пор так или поправили?

А вообще vim mode во всех IDE есть, если что, поправь меня.

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

Ты че гонишь, vim это илитарность

1337 стикер на ноутбук, чулки, квадробинг

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

Зачем переключать? yt$, yf., или что-нибудь тсходя из контекста задачи.

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

Ну и вот это вот yt$, yf. это ещё надо осилить и запомнить. И опять же, надо переключать режим для ввода.

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

Там не ESC а Backspace я опять писал и думал о мускулистых мужиках, поэтому написал бред ряяяяяяя

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

там под этих нейтивов. y - yank, d - delete и тп, те да нормальному человеку, который не использует в повседневной речи блевотную смесь норвежского с гэльским, французским и латынью сложно такое запомнить

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

Шеф жаловался, что расширение для vim очень тормозит. До сих пор так или поправили?

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

А вообще vim mode во всех IDE есть, если что, поправь меня.

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

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

Ну и вот это вот yt$, yf. это ещё надо осилить и запомнить.

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

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

им очень удобно иметь различные сочетания типа сотрем 5 символов слева d5h одной комадой вместо отправки 5 нажатий на ESC с ожиданием ответа. Те с момента появляения «сверхбыстрого» инторнета 512кбит/с он отжил свое

ну что за чепуха! Команды типа d5h нужны для того, чтобы их повторять. Если тебе надо один раз удалить пять символов слева, ты скорее всего сделаешь это просто пять раз жмякнув h и один раз d. А вот если тебе надо повторить операцию в нескольких местах, то да - ты делаешь d5h, а потом в нужном месте жмякаешь точку. Это еще я не говорю про макросы, я их сам практически не использую. Но, повторю еще раз, вдруг ты не услышал, сложные команды пишут для многократно их использования.

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

Ну и вот это вот yt$, yf. это ещё надо осилить и запомнить.

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

Возьмем, например, пару примеров.

# нам нужно выделить текст "|внутри скобок|", |"текст вместе со скобками"|
# в обычном редакторе это будут два никак не связанных между собой хоткея
# более того, скорее всего их просто не будет для любого случая

# в Виме это будет vi" и va"

# ну ладно, просто похожие хоткеи

# теперь возьмем другой распространенный случай
# нужно выделить только параграф и параграф с окружающими строками
# в обычном редакторе это будут (не будут) еще два хоткея
# которые вообще никак не связаны с предыдущими двуми

# в вим это vip и vap (p -- paragraph)

# чувствуешь логику?
# и в вим везде так, происходит комбинация базовых движений и о некоторых из них можно даже догадаться!

Вим красив и логичен. В некотором смысле это произведение инженерного искусства и даже если ты им не пользуешься, можешь оценить его красоту.

К сожалению, реальный мир совсем не такой, особенно если тебе надо использовать два языка.

Тот же emacs – это просто странный устаревший редактор без всякой идеи. А вим не такой.

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

Вим красив и логичен. В некотором смысле это произведение инженерного искусства и даже если ты им не пользуешься, можешь оценить его красоту.

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

А комбинации, вот даже сейчас, я проникся очень

# в Виме это будет vi" и va"

Но это сейчас, а через 2 часа я уже забуду это и если захочу использовать, то придется гуглить. Да что там говорить, я поиск\замену запомнил только через 5 лет где там двоеточие, где процент, а где буква s. И то не уверен, что через пол года не придется гуглить. Понавешать бы на всё это хоткеи привычные. Я так, кстати, сделал с vifm(по мне так лучший консольный двухпанельник). У меня в нём привычные ещё по нортон командеру F5(F6), Shift-F5(F6) и так далее.

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

Хитросделанные команды типа di" нужны когда они нужны, но для рутинного кодинга проще стрелками выделять. Для этого можно слегка подрихтовать дефолт:

noremap  <C-Right> W
noremap  <C-Left>  B
inoremap <C-Right> <C-o>E<Right>
inoremap <C-Left>  <Left><C-o>B

nnoremap <S-Right> vE
nnoremap <S-Left>  vB
vnoremap <S-Right> E
vnoremap <S-Left>  B
inoremap <S-Right> <Right><Esc>vE
inoremap <S-Left>  <Esc>vB

nnoremap <S-Down> V
nnoremap <S-Up>   V
vnoremap <S-Down> j
vnoremap <S-Up>   k
inoremap <S-Down> <Esc>V
inoremap <S-Up>   <Esc>V

Ещё рекомендую плагин indent-object, и замапить выделение блока как-то так:

nmap <Leader><Return> jvaIo
xmap <Leader><Return> aIo

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

Попробую себе конфиг в таком стиле подкрутить.

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

У меня, как программиста, тоже много работы с кодом, которая включает не только ввод, но и его редактирование. Поэтому навигация вим, его команды и макросы рулят невероятно :)

Вчера занимался портированием приложения на новую версию движка. Сдуру решил вносить фиксы методом build -> fix -> build -> fix сразу в Xcode. Сколько же я в помнил разных слов о разработчиках Xcode :)

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

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

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

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

У меня на стрелки замаплено уведомление «мув юр хэндс он дэ хоум роу» :)

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

Молодой человек, как не стыдно такие извращения показывать, да еще и в публичном месте?

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

Однако в 2024м ограничевать графические возможности программы выводом символа в знакоместо - это тупость и позерство.

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

Что касается «обречённости на провал», то это не так. Взять тот же популярный lazygit.

А что касается обсуждения Sam и Acme, то это графические программы. В них нет псевдографического текстового интерфейса. Acme придаёт тексту осмысленное значение (на текст можно кликать и действие зависит от содержания текста, на который ты кликнул), но это другое явление, которое присутствует даже в современных программах, в менее экстремальной форме.

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

«Правильность» затуманивает конкретные, объективные качества как Sam и Acme, так и современных редакторов.

Sam и Acme были созданы с двумя целями: решить проблемы, которые были актуальные на тот момент времени, и постараться улучшить то, что и так хорошо работало. Для того, чтобы оценить Sam и Acme, необходимо хотя бы прочесть хотя бы whitepapers (1, 2). Между этими и современными редакторами есть не только различия, но и важные сходства.

Современные редакторы могут заимствовать идеи, реализованные в Sam или Acme. Например, исполнение HTTP запросов из файла в IntelliJ IDEA очень сильно похоже на почерк Acme.

Сам Acme имеет интеграцию с LSP-сервером (3), которая хорошо гармонирует с уже имеющимися принципами и практиками Acme.

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

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

Правда? Паста из вики r/vim (1):

In normal mode, all of these keys can move the cursor: … Learn to use all of them. [italics mine]

` # $ % ^ * ( ) 0 _ - + w W e E t T I o O { }
[[ [] ][ ]] [m [M ]m ]M [( ]) [{ ]} | A f F
ge gE gg G g0 gm g^ g$ g_ g, g; gj gk gI
h H j k l L ; ' z. z<CR> z- zz zt zb b B n N M
, / ? <C-b> <C-d> <C-e> <C-f> <C-h> <C-i> <C-o>
<C-t> <C-u> <C-y> -

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

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

Я полгода работал над проектом (бэкенд для веб-сервиса) в традиционном vi. Да, это не сложно, порой интересно, но я не увидел смысла в переусложнённом управлении.

Решил ознакомиться с корнями, прочёл whitepaper (1), несколько интервью Билла Джоя. Похоже на то, что vi сделан таким образом не ради эффективного управления, а из отсутствия других альтернатив. Его слова:

One of the good things about EMACS, though, is its programmability and the modelessness. Those are two ideas which never occurred to me. [bold mine]

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

Забыл ещё про это утверждение, так же высказанное Джоем:

The fundamental problem with vi is that it doesn’t have a mouse and therefore you’ve got all these commands.

kaldeon
()

Бери дополнение на remote nvim, тогда всё отлично.

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

Я полгода работал над проектом (бэкенд для веб-сервиса) в традиционном vi.

если тебе делать нехер, найди себе хобби, ну или бабу на худой конец

FishHook
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.