2011-12-26 6 views
8

मैं कोशिश कर रहा हूँ राजी जाँचने 7.3 सही ढंग से पीडीएफ के लिए (:hardcopy) केंद्रीय यूरोपीय वर्ण (ŠĐČĆŽ šđčćž) मुद्रित करने के लिए। सेटिंग्स जो मेरा मानना ​​है कि प्रासंगिकविम और मुद्रण (PDFing) में मध्य यूरोपीय पात्रों उन्हें बाहर

set encoding=utf8 
set fileencodings=ucs-bom,utf8,cp1250,latin1 
set guifont=Consolas:h9:cEASTEUROPE 
set printfont=Consolas:h9:cEASTEUROPE 

cp1250 को एन्कोडिंग बदलने (और उन्हें फिर से लेखन, ऊपर एन्कोडिंग शिकंजा में परिवर्तन के बाद से) वे सही ढंग से प्रिंट आउट करने के बाद किया जाना है।

अब, मैंने सोचा था कि utf-8 cp1250 से बहुत बड़ा और अधिक पूर्ण सेट था। उस परिवर्तन के बाद वे सही तरीके से प्रिंट क्यों करते हैं, या अधिक महत्वपूर्ण बात यह है कि मैं उन्हें enc=utf-8 के साथ संयोजन में क्यों उपयोग नहीं कर सकता (जिसे मैं आम तौर पर अन्य पात्रों की बहुतायत के कारण उपयोग करता हूं, सामान्य रूप से सुलभ नहीं)?

enter image description here

enter image description here


:version 
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 27 2010 17:59:02) 
MS-Windows 32-bit GUI version with OLE support 
Included patches: 1-46 
Compiled by [email protected] 
Big version with GUI. Features included (+) or not (-): 
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl 
+cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs -dnd 
-ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +gettext/dyn 
-hangul_input +iconv/dyn +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu 
+mksession +modify_fname +mouse +mouseshape +multi_byte_ime/dyn +multi_lang -mzscheme +netbeans_intg +ole -osfiletype 
+path_extra +perl/dyn +persistent_undo -postscript +printer -profile +python/dyn +python3/dyn +quickfix +reltime +rightleft 
+ruby/dyn +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static 
-tag_any_white +tcl/dyn -tgetent -termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual 
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup -xfontset -xim -xterm_save +xpm_w32 
    system vimrc file: "$VIM\vimrc" 
    user vimrc file: "$HOME\_vimrc" 
2nd user vimrc file: "$VIM\_vimrc" 
     user exrc file: "$HOME\_exrc" 
    2nd user exrc file: "$VIM\_exrc" 
    system gvimrc file: "$VIM\gvimrc" 
    user gvimrc file: "$HOME\_gvimrc" 
2nd user gvimrc file: "$VIM\_gvimrc" 
    system menu file: "$VIMRUNTIME\menu.vim" 
Compilation: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG -DFEAT_XPM_W32 -DWINVE 
R=0x0400 -D_WIN32_WINNT=0x0400 /Fo.\ObjGOLYHTR/ /Ox /GL -DNDEBUG /Zl /MT -DFEAT_OLE -DFEAT_MBYTE_IME -DDYNAMIC_IME -DFEAT_GUI_W3 
2 -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT -DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl83.dll\" -DDYNAMIC_TCL_VER=\"8.3\" -DFEAT_PYTH 
ON -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python31.dll\" 
-DFEAT_PERL -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl512.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=191 -DDYNAMIC_RUBY_DLL 
=\"msvcrt-ruby191.dll\" -DFEAT_BIG /Fd.\ObjGOLYHTR/ /Zi 
Linking: link /RELEASE /nologo /subsystem:windows /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib comdl 
g32.lib ole32.lib uuid.lib /machine:i386 /nodefaultlib gdi32.lib version.lib winspool.lib comctl32.lib advapi32.lib shell32.lib 
/machine:i386 /nodefaultlib libcmt.lib oleaut32.lib user32.lib  /nodefaultlib:python27.lib /nodefaultlib:python31.lib e:\t 
cl\lib\tclstub83.lib WSock32.lib e:\xpm\lib\libXpm.lib /PDB:gvim.pdb -debug 
Press ENTER or type command to continue 

जब टाइप किया और ENC = UTF8 के साथ सहेजा:

0000000: c5a1 2020 2020 c5a0 0d0a c491 2020 2020 .. ......  
0000010: c490 0d0a c48d 2020 2020 c48c 0d0a c487 ...... ...... 
0000020: 2020 2020 c486 0d0a c5be 2020 2020 c5bd  ...... .. 
0000030: 0d0a 0d0a 0d0a       ...... 

... ENC = cp1250 साथ

012,
0000000: 9a20 2020 208a 0d0a f020 2020 20d0 0d0a . .... ... 
0000010: e820 2020 20c8 0d0a e620 2020 20c6 0d0a . .... ... 
0000020: 9e20 2020 208e 0d0a 0d0a     . ..... 
+0

प्रिंटिंग/पीडीएफिंग के दौरान आपको कौन से विशिष्ट पात्र मिलते हैं? – dusan

+0

'हार्डकॉपी' कमांड जारी करने से पहले प्रिंटिंग एन्कोडिंग को स्पष्ट रूप से सेट करने का प्रयास करें: ': printencoding = utf-8' सेट करें। –

+0

@ib। - मेरे पास + प्रिंटर लेकिन -पोस्टस्क्रिप्ट के कारण 'प्रिंटनकोडिंग' विकल्प उपलब्ध नहीं है। इसके अलावा, मैं उल्लेख करना भूल गया, मैं जो पूछ रहा हूं वह कुछ (?) सेटिंग्स के साथ विम (6.9, 7.0 ??) के पुराने संस्करणों में से एक पर काम करता है। हां, मेरे लिए खो गया। – Rook

उत्तर

1

यहां very nice thread इस के बहुत करीब कुछ चर्चा कर रहा है। अंत में निष्कर्ष यह है कि, "यह काम नहीं करता है, ऐसा मत करो" - बस यूटीएफ -8 में फ़ाइल को सहेजें और इसे किसी और चीज़ से प्रिंट करें, उदा। नोटपैड।

यह मेरा सिस्टम पर काम करता है:

:silent !notepad /pt "%" "PDFLite" 

जहां PDFLite मेरी प्रिंट करने वाली पीडीएफ प्रिंटर का नाम है।

संपादित करें: मैं vim में "utf-8" एन्कोडिंग का उपयोग कर रहा हूं।

+0

यह बहुत ही आरामदायक नहीं है क्योंकि वे मेरे वर्णमाला का हिस्सा हैं, और इसलिए अक्सर उपयोग किया जाता है। मैं cp1250 का उपयोग कर सकता हूं, और इसे प्रिंट करता हूं (आग लगती है), लेकिन फिर मुझे सभी "कूल प्रतीकों" यूटीएफ का उपयोग करने की क्षमता नहीं है:/(उल्लेख नहीं है कि कुछ प्लगइन के साथ शिकंजा जो utf8 पर निर्भर करता है ठीक से काम करने के लिए) – Rook

+0

यह आपकी समस्या का समाधान नहीं करता है? यह उपरोक्त आदेश के साथ 'हार्डकॉपी' के उपयोग को बदलने की मात्रा है, और सब कुछ काम करता है। आप यूटीएफ -8 का उपयोग करते हैं। –

+0

यह केवल आधा समाधान है, न केवल मुझे यह सोचने का कारण बनता है कि मेरे पास कौन सी पीडीएफ प्रिंटर है जो कंप्यूटर पर है, लेकिन यह भी कि सभी प्रकार की अन्य समस्याएं उत्पन्न होती हैं जो इस तथ्य से उत्पन्न होती हैं कि utf8 ठीक से लागू नहीं किया गया है (वाक्यविन्यास रंग पहले दिमाग में आता है)। मुझे लगता है कि मैं तत्काल भविष्य में cpxxxx एन्कोडिंग श्रृंखला से चिपके रहूंगा:/ – Rook

0

पाप्स इंस्टॉल करें, यह vim "! Paps <%> out.ps" में कमांड के माध्यम से ठीक काम करता है, फिर आप ps2pdf को पीडीएफ में परिवर्तित कर सकते हैं।

पर एक मैक का उपयोग करते हैं ओ पी के रूप में विम का बहुत ही संस्करण

+0

ps2pdf का उपयोग न करें। इसके बजाय github/dov/paps से paps का नवीनतम संस्करण प्राप्त करें और जो सीधे पीडीएफ आउटपुट का समर्थन करता है। –

0

मैं उपयोग कर रहा हूँ 'काढ़ा पीएपी स्थापित'। उस सामान को मुद्रित करने के लिए मेरा जादू लगाव है:

:se fenc=cp1252 
:w 
:e ++enc=cp1252 
:se enc=cp1252 
:se fenc=cp1252 
:se penc=cp1252 
:hardcopy 

आपके लिए लागू एक कोडपृष्ठ का उपयोग करें। पहली तीन पंक्तियां (यानी बचत और पुनः लोडिंग) की आवश्यकता नहीं हो सकती है, लेकिन यह सुनिश्चित करना चाहिए कि पाठ वास्तव में परिवर्तित हो गया है (बफर के बजाय बस पुन: परिभाषित किया जा रहा है)। AFAICT enc और penc सेट करने की आवश्यकता है, fenc केवल सीवाईए है। फिर :hardcopy का उपयोग करें जो भी आप चाहते हैं।

अगर आप (latin1, UTF-8, आदि) कुछ अन्य कोड पृष्ठ पर में फ़ाइल की दुकान करने के लिए पसंद प्रासंगिक एनकोडिंग (enc, fenc) वापस बदलने के लिए और फिर से बचाने के लिए याद रखें। प्रक्रिया :se fenc और :w है।इसके बाद आप संभवतः :e (संभावित रूप से ++enc=xxx के साथ) और :se enc=xxx के साथ इसे जांचने के लिए जारी रख सकते हैं और यह सुनिश्चित करने के लिए कि आप अपने पसंदीदा कोडपृष्ठ का उपयोग करके एक प्रतिलिपि पर काम कर रहे हैं, साथ ही :se fenc=xxx और :w का एक और दौर जब आप बस हो सुरक्षित स्थान पर।

यह सब कुछ अनावश्यक है, लेकिन यह निश्चित तरीका है कि विम आपके साथ एक ही पृष्ठ पर है। जैसा कि आपने देखा है कि विंडोज़ (कम से कम डब्लूआरटी प्रिंटिंग) पर कोडपेज हैंडलिंग के बारे में कुछ मजाकिया है, इसलिए मुझे जरूरी नहीं कि यह सही तरीके से आंतरिक रूप से सभी सही चीजों को करने के लिए विश्वास करे। मैं इसे वास्तविक बाइट प्रतिनिधित्व बदलने के लिए मजबूर करता हूं और फिर सुनिश्चित करता हूं कि यह इसका उपयोग कर रहा है।

संबंधित मुद्दे