Size: a a a

2021 January 30

a

anton in pro.vim
Yaroslav Schekin
Полностью "ущербное выражение" выглядит так, кстати:
join(filter(split(execute("ls"), "\n"), {_, x -> matchstr(x, "Scratch") == ""}), "\n")
надо поправить, спасибо
источник

N

Nack Nime | #2o2o in pro.vim
:w !sudo tee "%"

sudo: a terminal is required to read the password; either use the -S option to read from standard input
or configure an askpass helper
sudo: a password is required

https://github.com/neovim/neovim/issues/12103
источник

N

Nack Nime | #2o2o in pro.vim
тоесть, в виме - можно, а в неовиме это нельзя делать? ну пиздец
источник

ПК

Паша Калугин... in pro.vim
neovim он такой
источник

NG

Nicholas Guriev in pro.vim
источник

GK

Georgy Komarov in pro.vim
Nack Nime | #2o2o
тоесть, в виме - можно, а в неовиме это нельзя делать? ну пиздец
Да, нельзя. Это из-за особенности реализации вызовов процессов neovim'ом. ЕМНИП, при вызове внешней команды, новый процесс не получает лидера группы, и поэтому не может использовать sudo.
источник

N

Nack Nime | #2o2o in pro.vim
Georgy Komarov
Да, нельзя. Это из-за особенности реализации вызовов процессов neovim'ом. ЕМНИП, при вызове внешней команды, новый процесс не получает лидера группы, и поэтому не может использовать sudo.
от капец
и как быть теперь?(
источник

GK

Georgy Komarov in pro.vim
Nack Nime | #2o2o
от капец
и как быть теперь?(
источник

N

Nack Nime | #2o2o in pro.vim
а с doas будет работать?
источник

GK

Georgy Komarov in pro.vim
Nack Nime | #2o2o
а с doas будет работать?
Не знаю.
источник

EG

Emmanuel Goldstein in pro.vim
Yaroslav Schekin
И это против, например:
let res = []
for buf in getbufinfo()
   if buf.name !~# 'Scratch'
      call add(res, buf.name)
   endif
endfor
echo join(res, "\n")

и
vim9script
var res = []
for buf in getbufinfo()
   if buf.name !~ 'Scratch'
      res->add(buf.name)
   endif
endfor
echo join(res, "\n")

Я как-то не вижу преимуществ, извините.
Ну окей, тогда на Lua это можно записать точно так же
vim.fn.getbufinfo() вместо bufinfo() и insert() вместо add()
источник

EG

Emmanuel Goldstein in pro.vim
Georgy Komarov
Да, нельзя. Это из-за особенности реализации вызовов процессов neovim'ом. ЕМНИП, при вызове внешней команды, новый процесс не получает лидера группы, и поэтому не может использовать sudo.
Не так
источник

EG

Emmanuel Goldstein in pro.vim
Это из-за того, что !-команды в NeoVim не получают STDIN
источник

EG

Emmanuel Goldstein in pro.vim
Без пароля (NOPASSWD) sudo работать будет
источник

EG

Emmanuel Goldstein in pro.vim
Emmanuel Goldstein
Это из-за того, что !-команды в NeoVim не получают STDIN
А не получают STDIN они потому, что NeoVim архитектурно не прибит к TUI, в отличие от вима
источник

EG

Emmanuel Goldstein in pro.vim
А вне TUI ты не можешь гарантировать STDIN. Попробуй запустить !sudo в gVim, например
источник

YS

Yaroslav Schekin in pro.vim
Emmanuel Goldstein
Ну окей, тогда на Lua это можно записать точно так же
vim.fn.getbufinfo() вместо bufinfo() и insert() вместо add()
Тем не менее, никакого преимущества, на Lua просто длинней, IMNSHO.
источник

EG

Emmanuel Goldstein in pro.vim
Yaroslav Schekin
Тем не менее, никакого преимущества, на Lua просто длинней, IMNSHO.
Угу, да, в этом конкретном примере пофиг (кроме того, что нужно не забыть использовать !~#, потому что в дефолтном операторе настройки редактора влияют на язык)
источник

NG

Nicholas Guriev in pro.vim
ну про такую особенность любой плагинописатель в курсе
источник

EG

Emmanuel Goldstein in pro.vim
Даже в этом примере вимскрипт тривиально будет медленнее
источник