(
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ ΠΠ°Ρ Π·Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π½Π°ΠΌ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΠ΅ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ Π°Π½Π°Π»ΠΈΠ·Π°, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°ΡΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ 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
:
Π‘ Universal-ctags
ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠ· ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ) Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ,
ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΎΡΡΡΠ΄Π°:
https://github.com/universal-ctags/ctags/blob/master/docs/autotools.rst :
ΠΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² 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
ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π·Π²ΡΡΠΈΡ ΠΊΠ°ΠΊ # 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
?
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
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
Π²ΡΡΠΈΡΠ»ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΅Π΅ Π² ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.