2012-12-06 11 views
6

मैं PyRoom/TextRoom की बजाय विचलन मुक्त लेखन के लिए विम का उपयोग करना चाहता हूं। This post, जो विमरुम का उल्लेख करता है, मुझे पहले से ही दिखा सकता है कि अधिकांश सेटिंग्स कैसे प्राप्त करें।बैमस्पेस को अक्षम कैसे करें और विम में कुंजी हटाएं?

मैं केवल याद कैसे TextRoom शैली प्रवाह मोड सक्षम करने के:

मैं बैकस्पेस कैसे अक्षम और चाबी को हटा सकते हैं (घ $ की तरह शॉर्टकट नहीं)?

+0

एक अक्षम बैकस्पेस "विकृति मुक्त" लेखन को कैसे बढ़ावा देता है? बस टाइपो बनाएं और उन्हें छोड़ दें क्योंकि यह स्वयं को सही करने के लिए विचलित है? कुछ पृष्ठभूमि तर्क इस सवाल में सुधार होगा। – Kaz

+1

@Kaz यह प्रवाह के बारे में है। जब आप गद्य लिखते हैं, तो लिखना जारी रखना और आपके द्वारा किए गए हर शब्द या गलती के बारे में सोचना अच्छा विचार नहीं है। लक्ष्य बहने वाला है और रास्ते में अपने आप को रोक दिए बिना विचारों की धारा को अपने सिर से पाठ में लाएं। मैंने कोड लिखने के लिए कभी कोशिश नहीं की, लेकिन वही "प्रवाह में आना" -इडिया भी सच हो सकता है। – mcbetz

उत्तर

12

आप उन्हें विशेष <Nop> लक्ष्य से मैप करके अलग-अलग कुंजी निष्क्रिय कर सकते हैं:

:inoremap <BS> <Nop> 
:inoremap <Del> <Nop> 

(आप यह सोचते हैं केवल उन्हें डालने मोड में अक्षम चाहते हैं।)

+0

पूरी तरह से मेरे प्रश्न का उत्तर दिया! – mcbetz

-1

आप vim बिना प्रवाह कर सकते हैं, एक बना कर शैल स्क्रिप्ट्स जो कच्चे मोड में tty से पढ़ती हैं और बैकस्पेस और डीएल सहित अधिकांश नियंत्रण वर्णों की अनुमति नहीं देती हैं, और चीजों को दो बार गूंजती हैं: एक बार सीधे टर्मिनल पर, और एक बार मानक आउटपुट के लिए ताकि आप अपने काम को फ़ाइल में रीडायरेक्ट कर सकें।

#!/bin/sh 

saved_tty=$(stty -g < /dev/tty) 

bail() 
{ 
    stty $saved_tty < /dev/tty 
    exit $? 
} 

trap bail EXIT INT 

stty raw -echo < /dev/tty 

while true ; do 
    ch=$(dd bs=1 count=1 < /dev/tty 2> /dev/null) 
    code=$(printf "%d" "'$ch") 
    if [ $code -eq 4 ] ; then 
    printf "\r\n" > /dev/tty 
    printf "\n" 
    break 
    elif [ $code -eq 13 -o $code -eq 10 ] ; then 
    printf "\r\n" > /dev/tty 
    printf "\n" 
    elif [ $code -ge 32 -a $code -lt 127 ] ; then 
    printf "%s" "$ch" > /dev/tty 
    printf "%s" "$ch" 
    fi 
done 

सहेजें इस flow, chmod a+x flow और बस के रूप में:

$ flow > file.txt 
Backspace and del not allowed 
here just type and type. 
Then hit Ctrl-D when you're done; no Enter 
required. 

$ flow 
ffoorrggoott ttoo rreeddiirreecctt!! 

आप एक खाली स्क्रीन की आवश्यकता है, clear पहले या स्क्रिप्ट के लिए स्क्रीन समाशोधन जोड़ें।

+0

चालाक होने पर, यह वास्तव में पूछे गए प्रश्न का उत्तर नहीं दे रहा है। – jskulski

+0

@jskulski एक्स-वाई समस्या। प्रश्न एक्स के लिए पूछता है लेकिन असली समस्या वाई है। यह उत्तर वाई को संबोधित करता है: एक प्रोग्राम का कार्यान्वयन जो पाठ के "प्रवाह" प्रविष्टि की अनुमति देता है (जिसे बाद में विम के साथ आसानी से मालिश किया जा सकता है)। बिलकुल चालाक नहीं, बस मूल खोल स्क्रिप्टिंग। – Kaz

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