Tmux හි වත්මන් නාමාවලියෙහි නව කවුළුවක් නිර්මාණය කරන්නේ කෙසේද?


218

new-windowඑහි ක්‍රියාකාරී නාමාවලිය සමඟ මා දැනට සිටින ස්ථානයට විවෘත කළ හැකිද? එය වැදගත් නම් මම zsh භාවිතා කරමි .

Answers:


150

Tmux 1.9 සිට ආරම්භ කිරීම default-pathවිකල්පය ඉවත් කරන ලදි, එබැවින් ඔබ -cසමඟ විකල්පය භාවිතා කළ යුතුය new-window, සහ split-window(උදා c. ", සහ %ඇතුළත් කිරීමට බන්ධන නැවත සකස් කිරීමෙන්
-c '#{pane_current_path}'). විස්තර සඳහා මෙම ප්‍රශ්නයට තවත් පිළිතුරු කිහිපයක් බලන්න.


අදාළ අංගයක් 2012 පෙබරවාරි මස මුලදී tmux SVN කඳට ගොඩ බැස්සා. මෙම කේතය ඇතුළත් වන tmux ගොඩනැගීම් වලදී, tmux යතුරු බන්ධන new-windowමඟින් වර්තමාන කවුළුවෙහි ක්‍රියාකාරී ක්‍රියාවලීන් ( default-pathසැසිය පවතින තාක් දුරට) පවතින ක්‍රියාකාරී නාමාවලිය සමඟ නව කවුළුවක් නිර්මාණය වනු ඇත. විකල්පය හිස් ය; එය පෙරනිමියෙන් වේ). split-windowබන්ධනයක් හරහා ආයාචනා කරන විට විධානය විසින් නිර්මාණය කරන ලද කවුළුව සඳහා ද එය එසේම වේ.

මෙය විශේෂ වේදිකා විශේෂිත කේතයක් භාවිතා කරයි, එබැවින් මේ අවස්ථාවේ දී සහය දක්වන්නේ ඇතැම් මෙහෙයුම් පද්ධති පමණි: ඩාවින් (ඕඑස් එක්ස්), ෆ්‍රීබීඑස්ඩී, ලිනක්ස්, ඕපන්බීඑස්ඩී සහ සොලාරිස්.

මෙය මීළඟ නිකුතුව වන tmux (1.7?) හි ලබා ගත යුතුය .


Tmux 1.4 සමඟ , මම සාමාන්‍යයෙන් භාවිතා කරමි

tmux neww

දැනටමත් අපේක්ෂිත වත්මන් වැඩ නාමාවලිය ඇති කවචයක.

කෙසේ වෙතත්, එකම වත්මන් වැඩ කරන ඩිරෙක්ටරියක් සහිත බොහෝ කවුළු සෑදීම අවශ්‍ය යැයි මම අපේක්ෂා කරන්නේ නම් (හෝ සුපුරුදු <prefix> cයතුරු බන්ධනය සමඟ ඒවා ආරම්භ කිරීමට මට අවශ්‍ය නම් ), මම default-pathසැසි විකල්පය හරහා

tmux set-option default-path "$PWD"

දැනටමත් අපේක්ෂිත වත්මන් වැඩ කරන ඩිරෙක්ටරිය ඇති කවචයක (ඔබට පැහැදිලිවම ඕනෑම ඩිරෙක්ටරියකින් එය කළ හැකි අතර ඒ වෙනුවට අගය සඳහන් කරන්න).

default-pathහිස් නොවන අගයකට සකසා ඇත්නම් , එහි ක්‍රියාකාරී විධාන රේඛා ආයාචනා වලින් වත්මන් වැඩ කරන නාමාවලිය “උරුම කර ගැනීම” වෙනුවට භාවිතා කරනු ඇත tmux neww.

මෙම tmux නිතර අසන පැන නමින් ප්රවේශය ඇත "කොහොමද මම වත්මන් කවුළුවක් ලෙස එම බහලුම තුල නව කවුළුවක විවෘත කළ හැක්කේ කෙසේද?" එය වෙනත් ප්‍රවේශයක් විස්තර කරයි; එය ටිකක් කැළඹී ඇත.


7
<prefix>cයටින් පවතින ෂෙල් නිදර්ශනයේ ක්‍රියාකාරී නාමාවලිය කියවීමට මට සිතියම් ගත කළ හැකි ක්‍රමයක් තිබේද (ඇත්නම්) සහ ක්‍රියාත්මක කිරීමට default-pathපෙර එය සකසන්න new-window. නැත්නම් එය tmux ඉල්ලීමට තරම් වැඩියි :)
ශ්‍රීකාන්ත් ෂරත්

තවත් සටහනක, යටින් පවතින කවචයේ වැඩ කරන නාමාවලිය කියවීමට පවා හැකිද? එය මගේ තත්ව තීරුවේ ප්‍රදර්ශනය කිරීම සඳහා මම මරා දමමි.
ශ්‍රීකාන්ත් ෂරත්

2
වෙනත් ක්‍රියාවලියක cwd උපුටා ගැනීම සඳහා අතේ ගෙන යා හැකි ක්‍රමයක් නොමැත (සමහර වේදිකාවල එය කළ හැකි වුවද (උදා: /proc/PID/cwdලිනක්ස් මත). දී ඇති විය හැකි අර්ධ විසඳුමක් නොමැති ප්රවේශය පිළිබඳ tmux නිතර අසන ප්රශ්න (එය එය විමසුම මුද්රණය විට ෂෙල් එහි cwd වාර්තා කර, පසුව වාර්තා නාමාවලියේ නව ෂෙල් ආරම්භ වන ප්රධාන පොදුයි).
ක්‍රිස් ජොන්සන්

හරි, මෙය මගේ දැනුමට ටිකක් පරිබාහිර වන අතර ඉතා විශ්වාසදායක බවක් දැනෙන්නේ නැත. මොනවා හරි කියනවා මට මේ ඔක්කොම නැතිව හොඳ වෙන්න පුළුවන් කියලා .. කෙසේ හෝ ස්තූතියි.
ශ්‍රීකාන්ත් ෂරත්

1
@paradroid: බන්ධනයක් හරහා කරන ඕනෑම දෙයක් (පෙරනිමියෙන්) tmux සේවාදායකයේ cwd හෝ default-pathසැසි විකල්පයේ වටිනාකම භාවිතා කරයි (එය සකසා ඇත්නම්). මෙම tmux නිතර අසන ප්රශ්න ( "මම කොහොමද වත්මන් කවුළුවක් ලෙස එම බහලුම තුල නව කවුළුවක විවෘත කළ හැක්කේ කෙසේද?") වර්තමාන කවුළුව තුළ ක්රියාත්මක කිරීම සඳහා shell වල cwd සහිත නව ආරම්භ වන ප්රධාන බැඳ ගැනීමට ක්රමයක් විස්තර බව ප්රවේශයක් , නමුත් ක්‍රමවේදය තරමක් තදින් බැඳී ඇත. බොහෝ විට මෙය කළ හැකි split-windowඅතර new-session(ඒ වෙනුවට neww).
ක්‍රිස් ජොන්සන්

293

වත්මන් (1.9a) Tmux man පිටුව -c start-directoryසමහර විධාන සඳහා විකල්ප පරාමිතියක් ලැයිස්තුගත කරයි , new-windowසහ ඇතුළුව split-window. එය ද ආකෘතිය විචල්ය අඩංගු pane_current_pathයන්නෙන් අදහස් කරන Current path if available.

මේවා සංයෝජනය කිරීමෙන්, වත්මන් වැඩ කරන ඩිරෙක්ටරිය සමඟ අපට නව කවුළුවක් විවෘත කළ හැකිය
new-window -c "#{pane_current_path}"
.

වත්මන් කවුළුව සිරස් අතට බෙදීමට ඔබට අවශ්‍ය නම්
split-window -c "#{pane_current_path}"
, තිරස් භේදයක් සඳහා භාවිතා කරන්න
split-window -h -c "#{pane_current_path}"

යතුරු බන්ධන පෙරනිමියෙන් වත්මන් වැඩ කරන නාමාවලිය සමඟ නව බෙදීම් සහ කවුළු විවෘත කිරීමට, පහත සඳහන් දෑ ඔබට එකතු කරන්න .tmux.conf. මෙම "අවට මිල කැඳවීම් සමග Tmux කියන්න එය වැලක් ආරම්භ කියනවා වෙනුවට බැඳ වේ "යතුර.

bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"

1
මෙය tmux 1.9 මත ක්‍රියා නොකරන්නේද? අපේක්ෂිත දේ කිරීමට මට එය ලබා ගත නොහැක.
එරික් ගැරිසන්

1
bind-key -r නව කවුළුව ඇතුළත් කරන්න -c "# {pane_current_path}", tmux 2.1 සඳහා ක්‍රියා කරයි
Marslo

6
OSX හි tmux 2.3 හි ක්‍රියා කරයි. මෙම බන්ධන අදාළ වන බව දැකීමට පවතින සියලුම සැසි නැවැත්වීමට / මරා දැමීමට අමතක නොකරන්න.
jmgarnier

2
පැතිකඩ @jmgarnier හෝ නැවත මූලාශ්‍රය: prefix- :, ඉන්පසු ටයිප් කරන්නsource ~/.tmux.conf
ijoseph

8
mjmgarnier හෝ සාධාරණයි tmux source-file .tmux.conf.
phil294

44

ඔව්, භාවිතා කරන්න new-window -c "#{pane_current_path}". ~/.tmux.confඑය නොනැසී පැවතීම සඳහා ඔබට පහත සඳහන් දෑ එකතු කළ හැකිය (පෙරනිමි යතුරු බැඳීම් උපකල්පනය කරමින්):

bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"

මෙම default-pathමාර්ගය සැකසීම විය ඉවත් උඩුගං කේතය හා tmux කතෘ බව එක්කෝ භාවිතා පණිවිඩය සිදු නිර්දේශ -c "#{pane_current_path}"හෝ -c "$PWDතුළ new-windowහා split-windowවිධාන.

මෙම අනුපිටපත් ප්‍රශ්නයටද මම පිළිතුරු දුනිමි .


10

Tmux හි මෑත සංස්කරණ සමඟ (v1.8, නමුත් සමහර විට v1.7 හි ද විය හැකිය):

tmux new-window -c "$PWD"

මෙය බෙදීම් කවුළුව සමඟ ද ක්‍රියා කරන බව පෙනේ, උදාtmux split-window -v -c "$PWD"
user7089

3
$PWDtmux 1.9a හි මා වෙනුවෙන් වැඩ කරන බවක් නොපෙනේ. pane_current_pathඉහත යෝජනා කළ පරිදි මට භාවිතා කිරීමට සිදු විය .
ජෝර්ඩෙල්වර්

3

මම ඒවා බන්ධන ලෙස තැබීමට උත්සාහ කරන විට අනෙක් පිළිතුරු මට ප්‍රයෝජනවත් නොවේ (විශේෂයෙන් tmux split-window -c). නමුත් මම වසරකට වැඩි කාලයක් තිස්සේ භාවිතා කර ඇති මගේම විසඳුම සකස් කර ඇති අතර එය නව කවුළු සහ බෙදීම් යන දෙකටම වැඩ කරයි:

~/.bashrc:

PS1="$PS1"'$([ -n "$TMUX" ] && tmux setenv TMUXPWD_$(tmux display -p "#D" | tr -d %) "$PWD")'

~/.tmux.conf:

unbind-key c
bind-key c run-shell 'tmux new-window "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key C new-window

bind-key - run-shell 'tmux split-window -v "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"'
bind-key | run-shell 'tmux split-window -h "cd \"$(tmux show-environment $(echo "TMUXPWD_#D" | tr -d %) | sed -e "s/^.*=//")\"; exec $SHELL"

අවම වශයෙන් $ (tmux -V) 1.8 සමඟ ක්‍රියා කරයි. පිටතට-අදහස් රේඛා බලන්න මෙතන ප්රදර්ශනය පරිසරය විධාන නොමැති බව පැරණි tmuxes සඳහා වැඩ අනුවාදය සඳහා.


0

tmux එය 1.8 අනුවාදයෙන් කළ නමුත් 1.9 දී -cධජය භාවිතා කිරීම සඳහා මෙම අංගය ඉවත් කරන ලදි .

මෙය විසඳිය හැකි නමුත් නැවත බන්ධනය කළ හැකි new-windowනමුත් ඔබට වෙනත් දෙයක් ධාවනය කිරීමට අවශ්‍ය නම් එය ඉතා නරක ය: ටයිප් කිරීම වෙනුවට ඔබට බොහෝ විට කිරීමට අවශ්‍ය නැති neww man tmuxයතුරු ලියනය neww -c "#{pane_current_path}" man tmuxකළ යුතුය.

අන්වර්ථයන් භාවිතා කිරීමට ඉඩ දීම සඳහා tmux වෙත නිසි ස්ක්‍රිප්ටින් භාෂාවක් එක් කිරීම, 'මාදිලියේ' බහු විධාන බන්ධනය කිරීම, විචල්‍යයන්, ලූප ආදිය ඇතුළත් කිරීමට tmux (මම කතුවරයා) ක්‍රමයක් ඇත ... තවද, එම හැසිරීම නැවත ගෙන එයි. : වත්මන් නාමාවලියෙහි නව කවුළු සහ කවුළු විවෘත වේ.

එය මෙහි ඇති ප්‍රභවයන්ගෙන් ගොඩනගා ගත හැකිය: http://ershov.github.io/tmux/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.