एक tmux pane को 80 (या तो) चौड़ा करें


12

मैं अपना कोड लिखते समय 80 कॉलम नियम का पालन करने की कोशिश कर रहा हूं, मेरा वर्तमान tmux सेटअप क्षैतिज रूप से 50/50 विभाजित है। मुझे बाएँ-बाएँ फलक में विम करना पसंद है, और दाएँ-बाएँ फलक में मेरे पास 75/25 का विभाजन है जहाँ मैं अन्य चीज़ें चलाता हूँ।

मेरी ओर से मॉनिटर 50% 76 कॉलम चौड़ा है, लेकिन मेरे लैपटॉप के प्रदर्शन पर यह 123 कॉलम चौड़ा है।

मैं अन्य आदेशों के लिए अचल संपत्ति को अधिकतम करना चाहता हूं, क्या मेरे कार्यक्षेत्र को लॉन्च करते समय इसे 80 कॉलम (या तो) पर सेट करने का एक तरीका है?

मैं वर्तमान में अपना कार्यक्षेत्र स्थापित कर रहा हूं:

bind C-w source-file ~/dotfiles/scripts/tmux_work_layout

उस फ़ाइल में है:

selectp -t 0              # Select pane 0
splitw -h -p 50           # Split pane 0 vertically by 50%
selectp -t 1              # Select pane 1
splitw -v -p 25           # Split pane 1 horizontally by 25%
selectp -t 0              # Select pane 0

आप एक संपादक का उपयोग करने पर विचार कर सकते हैं जो आपके द्वारा निर्दिष्ट कॉलम में पैराग्राफ को भरता है, आपके मामले में 80। ईमेक की जाँच करें ।
लुइस

1
vim 7.3+ में एक colorcolumnसेटिंग है जो Nth वर्ण पर एक वैकल्पिक पृष्ठभूमि का एक स्तंभ जोड़ता है। PS> मैं कभी भी अंधेरे की ओर नहीं
मुड़ूंगा

जवाबों:


5

क्या यह ऐसा कुछ है जो आप चाहते हैं?

फ़ाइल में जोड़ें और इसके द्वारा निष्पादन योग्य बनाएं chmod +x filename। उदाहरण के लिए कॉल करें

./sizetmux       # Default hardcoded size
./sizetmux 85    # Specify width

इसे स्रोत फ़ाइल से चलाने के लिए:

if-shell /path/to/script/sizetmux 80

कोड:

#!/bin/bash

# Wanted pane width 0 - default 80, or pass argument 1 as wanted width
pw0=80
[[ "$1" =~ ^[0-9]+$ ]] && pw0="$1"

# This could be done nicer, but, anyhow: getting current width of pane 0
pw0_cur_w=$(tmux list-panes | awk -F"[ x:\\\[\\\]]+" '/^0:/{print $2}')

# Resize according to current width
if [[ "$pw0_cur_w" -eq "$pw0" ]]; then
    echo "OK $pw0"
elif [[ "$pw0_cur_w" -gt "$pw0" ]]; then
    ((w = pw0_cur_w - pw0))
    echo "$w less"
    tmux resize-pane -L -t 0 "$w"
elif [[ "$pw0_cur_w" -lt "$pw0" ]]; then
    ((w = pw0 - pw0_cur_w))
    echo "$w more"
    tmux resize-pane -R -t 0 "$w"
fi

एक को भी ध्यान में रखना होता है जैसे लाइन-संख्याएँ विम में शायद into५?


शायद थोड़ा अच्छा (इतना अव्यवस्था नहीं) संपादित करें (बाद में) pw0_cur_w=$(tm ...

((w = pw0_cur_w - pw0))

if [[ "$w" -ge 0 ]]; then
    dir="L"
    echo "$w less"
else
    dir="R"
    ((w *= -1))
    echo "$w more"
fi

[[ "$w" -gt "0" ]] && tmux resize-pane -"$dir" -t 0 "$w"


यह पूरी तरह से काम करने के लिए प्रकट होता है, क्या मैं अपने कार्यक्षेत्र को लोड करने पर इसे स्वचालित रूप से चलाने का एक तरीका है? (यह भी मैंने अपने सवाल को थोड़ा और जानकारी के साथ अपडेट किया है)
JKirchartz

@Jircirctz: सोर्स कमांड से अपडेट किया गया। (सभ्य उपकरण btw का उपयोग कर लोगों को देखने के लिए अच्छा है;)) का उपयोग कर रहे हैं screenऔर केवल हाल ही में अपने आप को मजबूर करने की कोशिश शुरू कर दिया है tmux
रनियम

हाँ, मैं विम विभाजन का पता लगाने की कोशिश कर रहा था, और मैं वर्कफ़्लो से बहुत खुश नहीं था, screenखोजने से पहले एक दिन के लिए बाहर की जाँच की tmux, मुझे यह पसंद है। इसे सेट अप करें जैसा कि vim-like और अब यह एक हवा है।
JKirchartz

बस एक बग देखा, आप कहीं भी $ परिभाषित नहीं कर रहे हैं, कि 0 के साथ पूरी तरह से काम किया, धन्यवाद!
JKirchartz

@JKirchartz: आह, धन्यवाद। मैंने इसे कुछ कोड से कॉपी किया जहां $paneवैकल्पिक तर्क 2 था और जहां मैंने यह निर्धारित करने की कोशिश की कि फलक कहाँ था (बाएं / केंद्र / दाएं) और तदनुसार "आर" या "एल" का उपयोग करें, लेकिन पता लगाने में कठिन साबित हुआ। सही किया।
रनियम

8

मुझे स्वीकृत उत्तर के लिए कोड उपयोगी मिला, लेकिन, मैं tmux 1.8 का उपयोग कर रहा हूं और यह एक ऐसी सुविधा से निर्मित प्रतीत होता है, जिससे tmux मैन पेजों में विभाजित-विंडो के अंतर्गत आता है: The -l and -p options specify the size of the new pane in lines (for vertical split) or in cells (for horizontal split), or as a percentage, respectively.इसलिए, केवल -l insead of -p का उपयोग करने का प्रभाव होना चाहिए आप क्या देख रहे हैं। उदाहरण के लिए:

split-window -h -l 80

इसके लिए एक समान समाधान यहांresize-pane वर्णित है


0

इसका एक आसान तरीका यह है कि C-M-4 या Cb के साथ मुख्य-ऊर्ध्वाधर लेआउट का उपयोग करें: मुख्य-ऊर्ध्वाधर का चयन करें। यह emacs के लिए डिज़ाइन किया गया है इसलिए बाएँ फलक में 81 कॉलम हैं, आपको इसे 80-बनाने के लिए मुख्य-फलक-चौड़ाई विकल्प को बदलना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.