Π Π΅Π»ΠΈΠ· тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vim 8.2

ПослС ΠΏΠΎΠ»ΡƒΡ‚ΠΎΡ€Π° Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ состоялся Ρ€Π΅Π»ΠΈΠ· тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vim 8.2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отнСсён ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… выпусков, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ устранСны накопившиСся ошибки ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°.

Код Vim распространяСтся ΠΏΠΎΠ΄ собствСнной ΠΊΠΎΠΏΠΈΠ»Π΅Ρ„Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ, совмСстимой с GPL, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄. Основная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Vim связана с Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ — Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² сторонних ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² исходный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ссли мэйнтСйнСр Vim посчитаСт эти ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ внимания ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ запрос. По Ρ‚ΠΈΠΏΡƒ распространСния, Vim относится ΠΊ Π‘harityware, Ρ‚.Π΅. вмСсто ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ сбора ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π° Π½ΡƒΠΆΠ΄Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π°Π²Ρ‚ΠΎΡ€Ρ‹ Vim просят ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ сумму Π½Π° Π±Π»Π°Π³ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° понравится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, наряду со свойствами тСкста, Π² Ρ…ΠΎΠ΄Π΅ опроса Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ VimConf 2018 Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованныС возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π² Vim. Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ сообщСния, ΠΎΡ‚Ρ€Ρ‹Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ тСкста. Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ подсвСчСны Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, быстро ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹. РСализация ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° сущСствСнно Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ API для обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈΠ· ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния свойств тСкста, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ΠΎΠΌ куски тСкста ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ области. Бвойства тСкста ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° выдСлСния тСкста, Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅ доступным возмоТностям подсвСтки синтаксиса Π½Π° Π±Π°Π·Π΅ шаблонов. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ свойств тСкста Ρ‚Π°ΠΊΠΆΠ΅ являСтся, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ со связанным с Π½ΠΈΠΌΠΈ тСкстом ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ вставкС Π½ΠΎΠ²Ρ‹Ρ… слов ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ тСкстом.
  • Для наглядной дСмонстрации Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Vim 8.2 ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ ΠΏΠ»Π°Π³ΠΈΠ½ с ΠΈΠ³Ρ€ΠΎΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΡΡ‚Ρ€Π΅Π»ΡΡ‚ΡŒ Π² Π±Π΅Π³ΡƒΡ‰ΠΈΡ… ΠΏΠΎ экрану ΠΎΠ²Π΅Ρ†. Π‘Π΅Π³ΡƒΡ‰ΠΈΠ΅ ΠΎΠ²Ρ†Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½, Π° расцвСтка Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· свойства тСкста.

    Π Π΅Π»ΠΈΠ· тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vim 8.2

  • Для дСмонстрации свойств тСкста Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΏΠ»Π°Π³ΠΈΠ½ govim, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для подсвСтки синтаксиса Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° языкС Go, получая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ сСмантикС языка с внСшнСго LSP-сСрвСра (Language Server Protocol). Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π° Π² govim ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° контСкстных подсказок для автодополнСния ΠΈΠΌΡ‘Π½ ΠΈ отобраТния описаний Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
    Π Π΅Π»ΠΈΠ· тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Vim 8.2

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π° «:const» для опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ:

    const TIMER_DELAY = 400

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния словарСй с Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π±Π΅Π· использования ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ:

    let options = #{width: 30, height: 24}

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… присвоСний, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… присвоСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ многострочных кусков тСкста:

    let lines =<< trim END
    line one
    line two
    END

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ построСния Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

    mylist->filter(filterexpr)->map(mapexpr)->sort()->join()

  • Π’ основной состав Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° xdiff, позволившая Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ прСдставлСниС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² тСкста;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка «modifyOtherKeys» для задания Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ клавиш
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° консоли ConPTY, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ отобраТСния всСх Ρ†Π²Π΅Ρ‚ΠΎΠ² Π² консоли Windows 10;
  • ΠœΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ установщик для Windows.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Neovim 0.5. Neovim прСдставляСт собой отвСтвлСния ΠΎΡ‚ Vim, сфокусированноС Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ гибкости. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ пяти Π»Π΅Ρ‚ проводится агрСссивная ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Vim, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вносятся измСнСния, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ сопровоТдСниС ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ срСдства раздСлСния Ρ‚Ρ€ΡƒΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими мэйнтСйнСрами, ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ интСрфСйс ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ части (интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ трогая внутрСнности) ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π° основС ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΊ Neovim Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы, для взаимодСйствия с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ MessagePack.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ