Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
обязательно начнем использовать notepad, после введения поддержки плагинов, подсветки и консоли
I'm not sure how I feel about this. On the one hand I've been thinking on it for quite a long time already, newer shinier Vim is something I secretly wish for. On the other hand I found it quite problematic. The main problem of Vim is Vimscript. So «newer shinier Vim» is Vim with real programming language instead of vimscript. But it's impossible to remove Vimscript: it won't be Vim anymore. It affects not only scripting itself, but also how we interact with it in command mode, not to say about plugins we have already.
| и новой строки зависит от контекста выполнения. Сделать хак для парсера, чтобы он нормально это обрабатывал ещё можно, но это не всё: значение тех же символов (особенно первого) также зависит и от состояния интерпретатора, а именно от того, как определена пользовательская команда (если, конечно, именно она стоит до данных символов). То есть вы не можете распарсить строчку «Foo abc|let a=1» пока не выполните предыдущую, так как она может содержать command! -nargs=1 -bar Foo :echo <q-args>, а может command! -nargs=1 Foo :echo <q-args>.execute 'if '.condition
echo 'True'
endif делает именно то, что вы подумали. Правда, явно запрещён в документации. Что не додумались запретить, так этоexecute 'append'
let b=1
.. Впрочем, если ваш парсер будет считать, что тут есть присваивание, то это вряд ли кого огорчит.Что не додумались запретить, так этоЯ сейчас подумал и понял, что тут дело не в «не додумались». Если в первом случае можно просто написать
execute 'append' let b=1 .
. Впрочем, если ваш парсер будет считать, что тут есть присваивание, то это вряд ли кого огорчит.
if eval(condition), то во втором вы можете захотеть написать execute line_number . 'append' и потом собственно добавляемые строки. Правда это не отменяет тех фактов, что, во‐первых, добавляемые строки можно засунуть в execute и, во‐вторых, я ни разу не видел, чтобы кто‐то использовал append (правда, я уверен, что кто‐то его использует). Так что, возможно, незавершённый append не запрещён, чтобы кому‐то не пришлось возиться с line continuation и кучей дополнительных символов (кавычки, \n и точка для объединения строк).append: append). Также подсветка не работает с execute 'append'append! (с восклицательным знаком) не решает проблему с отступом, и впридачу не позволяет использовать отступ перед точкойappend, так как с высокой вероятностью ему придётся либо переделывать отступ у вставляемого append текста, либо нарушать отступы в своём тексте. Впрочем, такое останавливает далеко не всех.Stretch goals:
[...]
$50,000: Refactor system calls into an abstraction module backed by libuv when compiled to machine code, and backed by a javascript library when compiled to into asm.js through emscripten [...] In a few words, this will port neovim to run natively in modern web browsers.
brew upgrade neovim
brew reinstall --HEAD neovim
sudo pip2 install neovim
It's going to be an awful lot of work, with the result that not all systems will be supported, new bugs introduced and what's the gain for the end user exactly?
Neovim: современный клон текстового редактора Vim