1 पॉइंट द्वारा GN⁺ 2026-01-04 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • less कमांड की विभिन्न सुविधाओं और shortcut combinations के ज़रिए file navigation, search, filtering, bookmark, option switching आदि को प्रभावी ढंग से किया जा सकता है
  • कई files को एक साथ खोलकर :n, :p, :e, :d कमांड से files के बीच move·add·remove किया जा सकता है
  • search (/, ?, n, N) और filtering (&, &!) सुविधाओं का उपयोग करके खास pattern को जल्दी खोजा या बाहर रखा जा सकता है
  • bookmark (m, ') और bracket matching सुविधा से लंबे documents या code files में position बदलना आसान हो जाता है
  • run के दौरान option toggle (-S, -R, -N आदि) और external command execution (!) के जरिए less से बाहर निकले बिना environment को तुरंत बदला जा सकता है

कई files को संभालना

  • less सिर्फ pipeline के अंत में इस्तेमाल होने वाला tool नहीं है, बल्कि कई files को सीधे arguments के रूप में खोल सकता है
    • उदाहरण: less file1 file2 file3
  • run के दौरान भी :e file.h कमांड से नई file जोड़ी जा सकती है
  • :n से अगली file, :p से पिछली file, :x या :rewind से पहली file पर जाना संभव है
  • :d कमांड से मौजूदा file को सूची से हटाया जा सकता है

navigation सुविधाएँ

  • 3141G की तरह number+G डालने पर किसी खास line number पर जाया जा सकता है
  • 75% की तरह number+% से file में प्रतिशत आधारित position पर jump किया जा सकता है
  • /pattern से forward search, ?pattern से backward search, n/N से अगले/पिछले result पर जाना संभव है
    • !pattern का मतलब मेल न खाने वाली line खोजना, * का मतलब कई files में search, @ का मतलब पहली file से search शुरू करना, @* का मतलब सभी files में पूरा search

filtering सुविधाएँ

  • &pattern से सिर्फ वही lines दिखती हैं जो उस pattern से match करती हैं, यह internal grep की तरह काम करता है
  • &!pattern से सिर्फ वे lines दिखती हैं जो pattern से match नहीं करतीं, जो log files देखने में उपयोगी है

bookmark और bracket matching

  • m + character से bookmark सेट, ' + character से उस position पर जाना
    • उदाहरण: mo से OPTIONS section, me से EXAMPLES section में bookmark रखने के बाद 'o, 'e से jump करना
  • अगर (, [, { जैसे brackets स्क्रीन की पहली line में हों, तो उसी bracket को input करने पर matching bracket पर jump किया जा सकता है
    • इसके उलट, अगर closing bracket आखिरी line में हो, तो opening bracket पर जाया जा सकता है
  • alt+ctrl+b आदि से custom bracket pairs भी सेट किए जा सकते हैं

option toggle और external command execution

  • run के दौरान - के बाद options डालकर settings तुरंत बदली जा सकती हैं
    • -S: line wrap toggle
    • -G: search highlight
    • -i/-I: case sensitivity setting
    • -R: ANSI colors दिखाना
    • -N/-n: line numbers दिखाना/छिपाना
  • ! कमांड से external command चलाना संभव है (!date, !bc आदि)

environment variables और अन्य सुविधाएँ

  • अक्सर इस्तेमाल होने वाले options को environment variable $LESS में save किया जा सकता है
    • उदाहरण: LESS="-RNe" → colors दिखाना, line numbers दिखाना, file के अंत में अपने आप exit
  • v कमांड से मौजूदा file को $VISUAL editor में खोलना
  • o या O कमांड से standard input से पढ़ी गई सामग्री को file में save किया जा सकता है
  • less ctags आधारित tag jump सुविधा को support करता है, हालांकि इसका उपयोग कम होता है

1 टिप्पणियां

 
GN⁺ 2026-01-04
Hacker News की राय
  • हैरानी हुई कि follow फीचर छूट गया। शुरुआत में यह थोड़ा अजीब UX लगता है, लेकिन आदत पड़ने पर कई बार tail से बेहतर होता है
    less +F से चलाने पर यह input stream या file को real time में follow करते हुए दिखाता है। <C-c> से follow रोककर सामान्य less की तरह browse कर सकते हैं, और फिर F (बड़ा अक्षर) दबाने पर follow दोबारा शुरू हो जाता है

    • pipe input (kubectl logs | less +F) को follow करते समय <C-c> दबाने पर पूरा pipe process बंद हो जाता है, इसलिए बाद में F से follow फिर शुरू नहीं किया जा सकता। less में <C-x> से follow रोकने का विकल्प है, लेकिन ज़्यादातर shell इस key को intercept कर लेते हैं
    • tail में Enter दबाकर आख़िरी line के नीचे खाली line जोड़ी जा सकती है। कई runs के output को अलग-अलग देखकर समझना आसान होता है, इसलिए इसी एक फीचर की वजह से मैं अब भी tail इस्तेमाल करता हूँ
    • “थोड़ा अजीब” कहने के बजाय मुझे लगता है UX खराब है। mode switch की ज़रूरत ही नहीं होनी चाहिए; नया data आते ही अपने आप refresh होना बेहतर होगा
    • ऐसा mode होना अच्छा होगा जिसमें नया output अपने आप जुड़ता रहे और साथ ही browse भी किया जा सके। terminal की तरह सिर्फ auto-scroll toggle होना काफ़ी लगता है
    • पहले मुझे लगता था “follow” file descriptor को खास तरह से संभालने वाला कोई जटिल फीचर है, लेकिन असल में यह बस EOF के बाद लगातार polling करना है। यानी सामान्य file open और follow mode के बीच कोई मूलभूत अंतर नहीं है, और software आसानी से इनके बीच switch कर सकता है
  • -X या --no-init option exit होने पर screen साफ़ नहीं होने देता। मैं आमतौर पर screen को बनाए रखना पसंद करता हूँ ताकि पिछला content देख सकूँ या copy-paste कर सकूँ

    • अगर -X behavior सिर्फ कभी-कभी चाहिए, तो इस thread की tip देखी जा सकती है
    • -E के साथ इस्तेमाल करने पर output terminal size से छोटा हो तो यह तुरंत exit हो जाता है। कई options मिलाकर मैं अक्सर “less -SEXIER” इस्तेमाल करता हूँ। याद रखना भी आसान है
  • लंबे log debug करते समय & से सिर्फ़ ज़रूरी हिस्से filter करता हूँ और &! से गैरज़रूरी हिस्से exclude करता हूँ। regex भी support होता है। कभी-कभी धीमा होता है, लेकिन तुरंत filtering के लिए काम का है

  • दो उपयोगी tips हैं
    -L option input file preprocessing को skip करता है, जिससे logfile.1, logfile.2 जैसे rotated log files को nroff से गलत तरह process होने से बचाया जा सकता है
    और search करते समय पहले अक्षर के रूप में Ctrl-R डालने पर regex नहीं बल्कि literal string से search किया जा सकता है

  • ~/.lesskey file से key binding सेट की जा सकती है। मैं s को पीछे scroll करने के लिए bind करता हूँ, ताकि d और s से एक ही हाथ से तेज़ी से page up/down कर सकूँ
    macOS के default less में यह फीचर नहीं है, इसलिए Homebrew से install करना पड़ता है (उदाहरण config, संबंधित विवरण)

    • मैं भी N को next-file के लिए bind करता हूँ। macOS में lesskey न होना सच में बहुत असुविधाजनक है
  • OpenBSD का man, less को tags पास करता है ताकि :t test की तरह किसी खास section पर सीधे जाया जा सके। दिलचस्प फीचर है, लेकिन व्यवहार में मैं इसे लगभग कभी इस्तेमाल नहीं करता।
    बस / से search करने वाला consistent interface ज़्यादा सहज लगता है।
    वैसे BSD परिवार mdoc macro set का इस्तेमाल करके semantic documentation बनाता है, और OpenBSD इसे render करने के लिए mandoc program का उपयोग करता है (mdoc दस्तावेज़)

  • ^q से less बंद करते समय screen साफ़ न हो, और सामान्य q पहले की तरह exit के बाद screen साफ़ करे, ऐसा set किया जा सकता है

    echo '^q toggle-option -redraw-screen\nq' >> ~/.config/lesskey
    

    less को -X के बिना चलाना होगा, और git log जैसी स्थिति में जहाँ पिछले output को देखना हो, यह खास तौर पर उपयोगी है

  • less में external command को pipe करने का फीचर भी है।
    उदाहरण के लिए ma से mark सेट करें और |a से current position से उस mark तक का content किसी external command को भेज सकते हैं।
    news या email के हिस्से save करने में यह उपयोगी है।
    साथ ही -j option से यह समायोजित किया जा सकता है कि search result screen के top से कितनी lines नीचे दिखे

    • मैं भी इस pipe फीचर को git log में इस्तेमाल करता हूँ। commit चुनने के बाद shortcut से git show चलाता हूँ, या सीधे fixup काम करता हूँ।
      bash के debug trap और keyd-application-mapper का इस्तेमाल करके अभी चल रहे command का पता लगाया जाता है, फिर उस commit hash को निकालकर script से process किया जाता है
  • less(1) का regex engine बहुत धीमा है। बड़े files में मैं grep या ripgrep से search करके उसका result less में भेजकर देखता हूँ

  • s key से pipe data को file में save किया जा सकता है। copy-paste से कहीं ज़्यादा सुविधाजनक है

    • मैं भी यह फीचर अक्सर इस्तेमाल करता हूँ। लंबा चलने वाला process का output less में देखता हूँ, और जब result उपयोगी लगे तभी s से save करता हूँ।
      tee भी इस्तेमाल किया जा सकता है, लेकिन वह हमेशा file छोड़ देता है, इसलिए जब ज़रूरत न हो तो वह कम प्रभावी है