LINUX.ORG.RU

Сообщения mishka06

 

Как работает глобинг в виме

 

Учитывая, что в виме есть опции для настройки глоб експеншна у вима должен быть свой глоб енжн, тем неменее в usr_11.txt нашел такое:

	Vim tries to find the swap file by searching the directories in the
	'dir' option, looking for files that match "filename.sw?".  If
	wildcard expansion doesn't work (e.g., when the 'shell' option is
	invalid), Vim does a desperate try to find the file "filename.swp".
	If that fails too, you will have to give the name of the swapfile
	itself to be able to recover the file.

Это указывает на связь вима с глоб енжином шела. Может вим использует шел как фулбек? не могу найти инфы по этому поводу

mishka06
()

:[range]diffg[et] [bufspec] изменяет слишком много строк

 ,

Открыт vimdiff, три окна с файлами a, b, c. Мы во втором окне, стока N изменина, строки N+1, N+2 удалены. Я стою на строке N и делаю :.diffget a, в итоге изменяться все три строки: N, N+1, N+2, а я хотел изменить только текущую. Если бы N+1 и N+2 были не удалены а просто изменены, все бы работало правильно.

mishka06
()

Когда systemd таргет считеться достигнутым?

 

Доки четко говорят что WantedBy не влияет на порядок, только на то, будет ли сервис активирован или нет. Я могу написать WantedBy=multi-user.target и тут же After=multi-user.target. Тоесть systemd разделят порядок и зависимости. Если так то multi-user.target после base.target достигается почти мгновенно, т.к. никто не пишет Before=multi-user.target в сервисах, это антипатерн. Тоесть multi-user.target не ждет сервисов у которіх стоит WantedBy=multi-user.target. НО!! на практике у меня есть сервис, который должен запускаться самым последним, у него WantedyBy=multi-user.target + After=multi-user.target и судя по логам он действительно запускается в конце, не могу это никак обьяснить. Насколько это детерминировано?

mishka06
()

Не работает функция Eatchar в абревиатуре

 ,

У меня есть стандартная функция

function! Eatchar(pat)
	let c = nr2char(getchar(0))
	return (c =~ a:pat) ? '' : c
endfunction

и абривиатура

iab <buffer> guard
	\ #ifndef <C-R>=toupper(expand('%:t:r'))<CR>_H<CR>
	\#define <C-R>=toupper(expand('%:t:r'))<CR>_H<CR><CR><CR>
	\#endif /* <C-R>=toupper(expand('%:t:r'))<CR>_H */
	\<C-R>=Eatchar('[[:space:]]')<CR><Up><Up>

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

к примеру вот эти работают коректно

iab <buffer> inc #include <><Left><C-R>=Eatchar('[[:space:]]')<CR>
iab <buffer> incc #include ""<Left><C-R>=Eatchar('[[:space:]]')<CR>
mishka06
()

Не могу понять как работает ресайз окон в виме

 

  1. Я делаю вертикальный сплит, делаю левое окно очень узким, перевожу фокус на правое окно, делаю вертикальный сплит: правое окно поделилось пополам, левое окно сохранило свой размер. Но если я сделаю еще один вертикальный сплит, то все 4 окна выровняются и будут одного размера. Насколько я вижу это не зависит от размера маленького левого окна, но не может же быть сахардкожено что когда именно 4 окна то их выравнивает по размеру
  2. set winwidth=30 winheight=5 winminwidth=30 winminheight=5. Та же самая ситуация, но на 4 окне 3 окна выравниваются поровну а одно становися очень узким, не могу понять чем этим обьяснить
mishka06
()

Несоответствие мануала действительности

 

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

Например:

for name; { echo $name; }

в мануеле нет констнукции for без do, тем неменее в баше есть несколько вариантов таких конструкций

также в while/until ; опциональна, хотя в мануле написано что нет

mishka06
()

Быстро разряжается ноутбук, плохая производительность

 , ,

У меня HP ZBook Power 15.6 inch G8 Mobile Workstation PC, 11th Gen Intel(R) Core(TM) i7-11800H (16) @ 4.60 GHz. Во время покоя ваттаж 10-13, но под нагрузкой достигает гдето 65. Зашел посмотреть на форумах, люди там пишут что у них не бывает выше 3, поэтому и удивился. Также процессор не работает на своей частоте, гдето 3.2 а потом падает до 2.2 но уж никак не 4.6. Сижу на арче, есть почти аналогичный ноут на убунте и там произвоительность на 15% выше хотя процесор похуже а ваттаже не больше 25. Думаю может какихто драйверов у меня нет. Также там герцовка не падает. Еще заметил что тепмература процессора очень низкая даже на 100% загрузке, судя по всему это изза низкой герцовки. куллеры работают очень вяло вочемуто, думаю изза этого происходит сротинг и падает герцовка а с ней и производительность

mishka06
()

Поиск файлов в vim очень мелденный

 

Мне бы хотелось не использовать внешних утилит и плагинов, но vimgrep и :e glob :f glob очень медленные. У меня довольно большой проект, приходится ждать по несколько минут пока он найдет нужный файл, хотя ripgrep и fzf.vim находят за пару секунд. Может есть какое-нибудь нативное решение?

mishka06
()

Не могу создать файл в g:netrw_curdir используя netrw-%

 

To open a new file in netrw’s current directory, press «%». This map will query the user for a new filename; an empty file by that name will be placed in the netrw’s current directory (ie. b:netrw_curdir).

Тут сказано, что netrw-% создает файл в netrw_curdir. Я переходу в нужнку директорию, использую netrw-cd, проверяю :echo b:netrw_curdir, она совпадает с browsing dir, но когда я создаю файл он создается в той директории где я открыл вим :(

mishka06
()

Высокая температура процессора во время низкой загрузки

 , ,

У меня давольно тяжелый конфиг вейбара, там я много и часто читаю из сисфс, но все равно cpu usage обычно не привышает 6-7% с моим i7-11800K. Но при этом, если еще запущен спотифай то температура процесора в idle может достигать 90 градусов. Я использую power-profile-daemon, с ним хотябы сротинга нет, но все равно результаты неудовлетворительные. Страно все же что куллеры при это активно работают. Сумарный cpu usage обычно меньше 10% но температура ниже 80 не опускается никогда

mishka06
()

booster не пересобирает загрзочний образ при обновлении dkms

 , ,

Раньше на арче я использую mkinitcpio, решил попробовать booster, посмотрел его alpm хуки и обнаружил что там нет триггера dkms, тоесть при обновлении виртулбокса, например, не будет пересобран загрузочных образ. Мне не совсем понятно как это работает и я не особо знаком с dkms, но просто странно почему mkinitcpio это делает и это занимает довольно много времени а booster - нет

mishka06
()