Ctags: Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ ctags Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ нСдопустимыС символы `utf-8` для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 июл. 2018  Β·  7ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: universal-ctags/ctags

(
Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Вас Π·Π° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΠΌ.

Если Π²Ρ‹ сообщаСтС ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·Π°, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаблон. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ваша настраиваСмая конфигурация CTags ΠΌΠΎΠΆΠ΅Ρ‚
Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ --options=NONE Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ
Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΈ запускС ctags .

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ шаблон ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с нуля.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Π΅Π±-интСрфСйс GitHub ΠΈ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΡƒΡ†Π΅Π½ΠΊΠΈ.
ИспользованиС Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° сломанного тСкста Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сходят с ΡƒΠΌΠ°.
)


Имя парсСра:

Командная строка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ использовали для запуска ctags:

$ ctags -R

Π£ мСня Π½Π΅Ρ‚ особых ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π² .ctags ΠΈΠ»ΠΈ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅. Π­Ρ‚ΠΎ свСТая Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ проводился этот тСст.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°: https://github.com/pallets/jinja/blob/master/jinja2/_identifier.py

Π’Ρ‹Π²ΠΎΠ΄ Ρ‚Π΅Π³ΠΎΠ² вас Π½Π΅ устраиваСт:

Universal-ctags вставляСт нСдопустимыС символы utf-8 ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ….

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π΅Π³ΠΎΠ²:

ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚Π΅Π³Π° со всСми Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами utf-8 .

ВСрсия ctags:

$ ctags --version
Universal Ctags 0.0.0(3522685), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: July 27 1018, 23:16:36
  URL: https://ctags.io/
  Optional compiled features: +wildcards, +regex, +iconv, +option-directory, +xpath

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ctags:

(
Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ctags построСн Π½Π° ubuntu-16.04 VM Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ, ΠΊΡ€ΠΎΠΌΠ΅ установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ automate , autoreconf для компиляции ctags ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для компиляции vim Π½Π° основС https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source#a-for-a-debian-like-linux-distribution-like-ubuntu-type
)

@lilydjwg ΡƒΠΊΠ°Π·Π°Π» ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ ctags вставлял нСдопустимыС символы utf-8 хотя Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅Π³ΠΎΠ², содСрТит здСсь всС допустимыС символы utf-8 :
https://github.com/vim/vim/issues/3213#issuecomment -406961075

Бкомпилированная вСрсия ctags Π² Ρ†Π΅Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

НСдавно Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π² ctags Π΅ΡΡ‚ΡŒ ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ
старый Execuberant ctags установлСн sudo apt-get install ctags Π½Π° Ubuntu
16.04 Π½Π΅ вставляСт нСдопустимыС символы utf-8 , Π½ΠΎ Ссли я ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽ
Universal-ctags ΠΈΠ· исходного ΠΊΠΎΠ΄Π°, ΠΈ Π½Π΅ всС это основано Π½Π° инструкциях здСсь:
https://github.com/universal-ctags/ctags/blob/master/docs/autotools.rst , это
вставит нСдопустимыС символы utf-8 . Π’ΠΎΡ‚ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°:

ΠŸΡ€ΠΈ установкС exuberant-ctags с использованиСм всСго sudo apt-get install ctags :

2018-07-29_19-03-44

Π‘ Universal-ctags скомпилированным ΠΈΠ· исходного ΠΊΠΎΠ΄Π° (послСдняя фиксация) Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ,
составлСно с инструкциями ΠΎΡ‚ΡΡŽΠ΄Π°:
https://github.com/universal-ctags/ctags/blob/master/docs/autotools.rst :

2018-07-29_19-10-22

Π­Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² vim, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ссли нСдопустимыС символы utf-8
пСрСдаСтся Π² vim.eval , vim.eval прСрываСтся, ΠΈ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π³ΠΈ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π²
всС. Π’ настоящСС врСмя сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащихся Π² viml
Π² ΠΏΡ€ΠΎΠ±Π΅Π» python-name , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ vim.eval . Π˜Ρ‚Π°ΠΊ, любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π²
vim, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. @ludovicchabant для
example ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ свой Ρ„Π°ΠΉΠ» Ρ‚Π΅Π³ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:
https://ludovic.chabant.com/devblog/2017/02/25/aaa-gamedev-with-vim/

Π’Π°ΠΊΠΆΠ΅ Π΅ΠΌΡƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ctrl-py-matcher Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.
https://github.com/ludovicchabant/ctrlp-py-matcher/blob/2f6947480203b734b069e5d9f69ba440db6b4698/autoload/pymatcher.py#L22

Π― Π²ΠΈΠ΄Π΅Π» Π΅Ρ‰Π΅ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, Π½ΠΎ я
Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ прСдоставили ΠΎΠ΄ΠΈΠ½ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ это ошибка, ΠΈ я Π½Π΅ оТидаю, Ρ‡Ρ‚ΠΎ ctags сдСлаСт это
Π΄ΠΈΠ·Π°ΠΉΠ½. МоТно Π»ΠΈ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π½ΡŒΡˆΠ΅ это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π² Exuberant Ctags
Π½Π° Ρ‡Π΅ΠΌ основан Universal-ctags?

Бсылка: https://github.com/vim/vim/issues/3213#issuecomment -408727629

ВсС 7 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Для мСня это Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ # 1275: новая опция pattern-length-limit ΠΎΠ±Ρ€Π΅Π·Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π±Π°ΠΉΡ‚Π°, которая оказываСтся Π² сСрСдинС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов. Π‘ΠΌ. # 163, # 640 ΠΈ # 1018.

Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ https://github.com/universal-ctags/ctags/issues/1275#issuecomment -274489859, вСроятно, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это.

@ alphaCTzo7G см. # 1807, исправляСт Π»ΠΈ это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

@ b4n , спасибо Π·Π° быстрый ΠΎΡ‚Π²Π΅Ρ‚ ...

Π’ Ρ„Π°ΠΉΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я размСстил здСсь _identifier.py , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ # 1805, ctags большС Π½Π΅ вставляСт нСдопустимыС символы / сокращСния Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ мСстС.

Π― ΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ этот PR Π½Π° ΠΌΠΎΠ΅ΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ для всСх ΠΌΠΎΠΈΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΈΠ»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ошибки.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ctrlp ΠΈ ctrlp-py-matcher - ΠΎΡ‡Π΅Π½ΡŒ популярныС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли Π±Ρ‹ # 1807 Π±Ρ‹Π» объСдинСн, Ρ‡Ρ‚ΠΎΠ±Ρ‹ vim ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ctrlp ΠΈ ctrlp-py-matcher Π½Π΅ бСспокоясь ΠΎΠ± этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.

Π‘Ρ‹Π» Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Π²Ρ‹Π·Ρ‹Π²Π°Π» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с vim.eval , ΠΈ ΠΎΠ½ содСрТал нСдопустимыС символы utf-8 ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ grep -axv '.*' misc.html ( misc.html Π² https: / /github.com/alphaCTzo7G/test). Π― Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ ctags вставляСт Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ символы utf-8 Π² Ρ„Π°ΠΉΠ» Ρ‚Π΅Π³ΠΎΠ² ΠΈΠ· misc.html .

Π˜ΠΌΠ΅Π΅Ρ‚ Π»ΠΈ смысл для ctags ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ нСдопустимыС символы Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ вмСсто этого Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» здСсь @tonymec ? (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π΅Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими экзСмплярами символа (U + FFFD REPLACEMENT CHARACTER), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ для этой Ρ†Π΅Π»ΠΈ.): https://github.com/vim/vim/issues/3213#issuecomment -405211243 ?

IIUC, ctags (я имСю Π² Π²ΠΈΠ΄Ρƒ Exuberant ctags, это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· доступных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ctags) распространяСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Vim (Π΄Π°ΠΆΠ΅ Ссли Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€ Π·Π½Π°Π΅Ρ‚ Bram ΠΈ Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Vim ΠΈ ctags Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ вмСстС.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ctags Π·Π°ΠΊΠΎΠ½Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ просто строку Π±Π°ΠΉΡ‚ΠΎΠ²: нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ это ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° UTF-8, Latin1, Latin9 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ISO 8859, ΠΏΡ€ΠΎΠ±Π΅Π» Ρ€Π°Π²Π΅Π½ 0x20, ТСсткая Π²ΠΊΠ»Π°Π΄ΠΊΠ° - 0x09, Ρ€Π°Π·Ρ€Ρ‹Π² строки - 0x0A, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΠΌΡƒ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ 0x0D ΠΈ Ρ‚. Π΄ .; ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ‚, Ρ€Π°Π²Π½Ρ‹ΠΉ 0x00, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² тСкстовом Ρ„Π°ΠΉΠ»Π΅. Ctags ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ ASCII-совмСстимой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΎΠ½Π° написана, ΠΈ поэтому Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ. Волько для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΈΠΊΠΎΠ²ΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ EBCDIC, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ тСкст ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅-ASCII (Π² EBCDIC, IIRC, AI - это 0xC1-0xC9, JR - 0xD1-0xD9, SZ - 0xE2-0xE9, 0-9 - 0xF0-0xF9. , ΠΈ я Π½Π΅ помню, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ΠΊΠΎΠ΄Ρ‹ для ΠΏΡ€ΠΎΠ±Π΅Π»Π°, табуляции, Ρ€Π°Π·Ρ€Ρ‹Π²Π° строки, Ρ‚ΠΈΡ€Π΅, подчСркивания ΠΈ Ρ‚.Π΄ .; Π½ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ASCII это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΈΠΊΠΎΠ²ΠΈΠ½Π½ΠΎ).

ИМΠ₯О, Π² случаС ctag дСйствуСт старый Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ: мусор Π½Π° Π²Ρ…ΠΎΠ΄Π΅, мусор Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅.

Π‘ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌΠΈ поТСланиями,
Π’ΠΎΠ½ΠΈ.

@tonymec .. ΠΈΠΌΠ΅Π΅Ρ‚ смысл .. Π― понимаю, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅Π³ΠΎΠ², Π½ΠΎ universal-ctags являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярным, ΠΈ срСди людСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… universal-ctags я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ это vim ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ½Π΅ интСрСсно, ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ эти 2 Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС нСдопустимыС символы utf-8 ?

  1. Π― Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π² ctags Π΅ΡΡ‚ΡŒ опция +iconv , которая позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ libiconv . ΠŸΡ€ΠΈ использовании Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС iconv ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСдопустимыС символы utf8 . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠ½Π΅ интСрСсно, Ссли я ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΌ --input-enconding=utf-8 ΠΈ --output-encoding=utf-8 , Ρ‚ΠΎΠ³Π΄Π° всС нСдопустимыС символы utf-8 Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° допустимыС символы utf-8 .

Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 1.3.4 https://media.readthedocs.org/pdf/ctags/latest/ctags.pdf :

Two new options have been introduced (--input-encoding=IN and --output-encoding=OUT). Using the encoding specified with these options ctags converts input from IN to OUT. ctags uses the converted strings when writing the pattern parts of each tag line. As a result the tags output is encoded in OUT encoding. In addition OUT is specified at the top the tags file as the value for the TAG_FILE_ENCODING pseudo tag. The default value of OUT is UTF-8. NOTE: Converted input is NOT passed to language parsers. The parsers still deal with input as a byte sequence. With --input-encoding-<LANG>=IN, you can specify a specific input encoding for LANG. It overrides the global default value given with --input-encoding

  1. ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ нСдопустимыС символы utf8 . Π’ этом случаС Π»ΠΈΠ±ΠΎ vim.eval Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ исправлСно, Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ функция vimL которая ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ нСдопустимыС символы utf-8 ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² vim.eval ..

@ alphaCTzo7G Π― согласСн с @tonymec ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ.

К соТалСнию, ΠΎΡ‡Π΅Π½ΡŒ слоТно Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ - ΠΈ я Π½Π°ΡΡ‚Π°ΠΈΠ²Π°ΡŽ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π²ΠΎΠ΄ Π±Ρ‹Π» Π±Ρ‹ тСхничСски допустимым, скаТСм, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ, Ссли Π½Π΅ всС 8-Π±ΠΈΡ‚Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π½ΠΎ зная, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π»ΠΈ это ΠΎΠ΄ΠΈΠ½ слоТСн ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½: скаТСм, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ISO 8859-1 ΠΈ 8859-15? РСшСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ слоТный эвристичСский Π°Π½Π°Π»ΠΈΠ· частоты использования ΠΈ контСкста; ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ наивная идСя, примСнимая ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ языкам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ HTML, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π±Ρ‹ Π² ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ это Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ctags здСсь находится Π² Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ: ΠΌΠ½ΠΎΠ³ΠΈΠ΅, Ссли Π½Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π° сгСнСрированныС Ρ‚Π΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΉΡ‚ΠΎΠ². НапримСр, grepping для шаблона Ρ‚Π΅Π³Π° ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π° вас, поэтому Ρ‚Π΅Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°ΠΉΡ‚ΠΎΠ². Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° всС, ΠΎ Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ, это ASCII, Π½ΠΎ Π½Π°ΠΌ большС Π½Π΅ повСзло… UTF-8 Π½Π΅ Π±Ρ‹Π» принят достаточно Ρ€Π°Π½ΠΎ.
Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ относится ΠΊ ΠΈΠ΄Π΅Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ символами-заполнитСлями: Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Ρ‚Π°ΠΊΠΈΠΌ символом Π·Π°ΠΌΠ΅Π½Ρ‹? По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с этим ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Однако, Ссли Π²Ρ‹ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ нСдопустимого UTF-8 Π½Π° U + FFFD ΠΈΠ»ΠΈ ΠΈΡ… ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ просто ΠΏΠΎΡΡ‚ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ctags?

@ b4n , Ρ†Π΅Π½ΡŽ ваш ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. На самом Π΄Π΅Π»Π΅ я имСю Π΄Π΅Π»ΠΎ Π² основном с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ utf-8 ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ utf-8 для Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я создаю. К соТалСнию, ΠΊΠ°ΠΊ Π²Ρ‹ упомянули, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ vim-gutentags , ΠΈ ΠΎΠ½ обСспСчиваСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ постобработки. Π₯отя я ΠΌΠΎΠ³ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ постобработку Ρ„Π°ΠΉΠ»Π° Ρ‚Π΅Π³ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Ρ„Π°ΠΉΠ»Ρ‹ utf-8 символы post-processing Π² vim-gutentags , это Π½Π΅ сработало. . Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ... Π½ΠΎ Ссли Π΅Π³ΠΎ Π½Π΅ сущСствуСт, ΠΌΠ½Π΅ придСтся ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ снова ...

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»Π°, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: https://stackoverflow.com/questions/805418/how-to-find-encoding-of-a-file-in-unix -via-scripts

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ enca , file , uchardet , enguess ? Π­Ρ‚ΠΎ всС возмоТности ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ... Π½ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ какая-Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π²Π½ΡƒΡ‚Ρ€ΠΈ ctags Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° количСства ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ упомянули, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ удастся Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π½ΠΎ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ этого, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ ...

Π― ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ --input-encoding (and/or --input-encoding-<LANG>) and --output-encoding options .. НС ΡƒΠ²Π΅Ρ€Π΅Π½, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всС врСмя, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ctags вычислит исправляСт ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π΅ Π² ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ