2010-02-16 15 views
44

Nie mogę utworzyć katalogu w języku rosyjskim (UTF-8) używając vimscript w WinXP.Utwórz katalog z nazwą UTF-8 w Vim

Na przykład

:call mkdir("привет") 

tworzy katalog z привет nazwy zamiast привет.

Próbowałem również

:call system("mkdir привет") 

z takim samym skutkiem.

Czy to możliwe?

+2

Może dostosowując 'encoding' opcję pomógłby? –

+0

2Laurence Gonsalves: tak, jeśli ustawię go na "cp1251" - przypuszczam, że ten rosyjski winxp używa - to działa. –

+0

2Laurence Gonsalves: Ale muszę przekonwertować 'привет' z UTF-8 na cp1251. Czy istnieje sposób bez wyraźnej konwersji? –

Odpowiedz

19

znalazł.

należy użyć funkcji iconv:

:call mkdir(iconv("привет", "utf-8", "cp1251")) 
+5

To wygląda na złą praktykę, ponieważ wychodzisz z UTF-8. Prawdopodobnie powinieneś sprawdzić, dlaczego nazwy UTF-8 nie działają dla ciebie. – dionyziz

+2

@dionyziz, prawdopodobnie odpowiedź brzmi, ponieważ jest na WinXP, a systemowym ustawieniem jest cp1251 i nie ma możliwości ustawienia go na UTF-8. –

30

spróbować

:!mkdir "привет" 
+0

Ten sam wynik -'їїїЂёёІІμС' ' –

64

Co zwykle zrobić to przełączyć się na tryb Explorer z :Explore i naciśnij d. Pyta mnie o nazwę katalogu.

+0

Potrzebuję tego do pracy w vimscript. –

1

można zmienić ENCOD. Dodaj:

chcp 65001 
:call mkdir("привет") 

chcp 65001 - UTF-8

+0

Masz na myśli konfigurację konsoli do używania UTF-8 (wykonaj 'chcp 65001' w konsoli) i dopiero wtedy uruchom Vima? Dla porównania [65001 to pseudo-strona kodowa do używania UTF-8] (// stackoverflow.com/a/1629454/2157640). – Palec

Powiązane problemy