Ble.sh: `C-z` ใ‚’ bash ็›ธๅฝ“ใฎๆŒ™ๅ‹•ใซใ—ใฆ/่กŒๅ†…ใซๆ–‡ๅญ—ๅˆ—ใŒใ‚ใ‚‹ใ‹ใฉใ†ใ‹ใฎๅˆคๅฎšใ‚’ๅซใ‚ใฆๆฌฒใ—ใ„

Created on 19 Sep 2017  ยท  5Comments  ยท  Source: akinomyoga/ble.sh

# ใ“ใ†ใ„ใ†ใฎใฏ new issue ใงใ„ใ„ใ‚“ใงใ—ใ‚‡ใ†ใ‹โ€ฆโ€ฆ๏ผŸ

ble.sh ใฎ C-z ใฏ่ญฌใˆ่กŒๅ†…ใซๅ…ฅๅŠ›ใ•ใ‚Œใฆใ„ใ‚‹ๆ–‡ๅญ—ๅˆ—ใŒใ‚ใฃใŸใจใ—ใฆใ‚‚ใ€ๅ•็ญ”็„ก็”จใง fg ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใ‚ˆใ†ใงใ™ใ€‚

$ sleep 10

ใ‚’ๅฎŸ่กŒใ—ใ€C-z ใ‚’ๅ…ฅๅŠ›ใ—ใฆใƒ—ใƒญใƒณใƒ—ใƒˆใซๆˆปใ‚Š

$ ls

ใจๅ…ฅๅŠ›ใ—ใฆใ‹ใ‚‰ C-z ใจใ™ใ‚‹ใจ fg ls ใŒๅฎŸ่กŒใ•ใ‚Œใ€

$ ls
bash: fg: ใ‚ซใƒฌใƒณใƒˆ: ใใฎใ‚ˆใ†ใชใ‚ธใƒงใƒ–ใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚
$ ls

ใจใชใ‚‹ใ€‚

bash ใงใฏ C-z ใฏใƒ—ใƒญใƒณใƒ—ใƒˆใซใŠใ„ใฆๆ„ๅ‘ณใ‚’ๆŒใกใพใ›ใ‚“ใ€‚

ใ—ใ‹ใ—็ฉบ่กŒใงใฎ C-z ใŒ fg ใ‚’ๅ‘ผใณๅ‡บใ™ใจใ„ใ†ใฎใฏไพฟๅˆฉใชใฎใงใ€
(Bash ใงใฏ่ฆ‹ๆŽ›ใ‘ใชใ„ใงใ™ใŒ Zsh ใฎๅˆฉ็”จ่€…ใฏใใ†ใ„ใฃใŸ้–ขๆ•ฐใ‚’ไฝœใฃใฆใ„ใ‚‹ๆ–นใ‚‚ๅคšใ„ใ‚ˆใ†ใงใ™)
C-d ็ญ‰ใซๅ‰ฒใ‚ŠๆŒฏใ‚‰ใ‚Œใฆใ„ใ‚‹ -or- ็ณปใฎ widget ใซใ—ใฆๆฌฒใ—ใ„ใงใ™ใ€‚

wontfix

All 5 comments

ใ”ๅ ฑๅ‘Šใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ๅฎŸใฏไธŠ่จ˜ใฎๅ‹•ไฝœใฏ (่‡ชๅˆ†ใฎ่ถฃๅ‘ณใงใฏใ‚ใ‚Šใพใ™ใŒ) ๆ„ๅ›ณ็š„ใชใ‚‚ใฎใงใ™ใ€‚

ใฉใ†ใ„ใ†ๅ‹•ไฝœใ‹ใจใ„ใ†ใจใ€C-z ใฏ็พๅœจ็ทจ้›†ไธญใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ใใฎใพใพใซใ—ใฆใ€ใใ‚Œใจใฏ็‹ฌ็ซ‹ใซ fg ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ„ใ†ใ‚‚ใฎใงใ™ใ€‚ๅ†ใณ suspend ใ™ใ‚Œใฐ "ใพใŸ็ทจ้›†ใฎ็ถšใใ‚’่กŒใˆใ‚‹" ใจใ„ใ†ๅ‹•ไฝœใซใชใฃใฆใ„ใพใ™ใ€‚็งใฏใ€ใƒ•ใ‚กใ‚คใƒซใฎไธญ่บซใ‚’็ขบ่ชใ—ใชใŒใ‚‰ๅฐ‘ใ—ใšใคใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใ‚’็ทจ้›†ใ™ใ‚‹ใจใใซใ€ใ‚จใƒ‡ใ‚ฃใ‚ฟใจใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใ‚’่กŒใฃใŸใ‚ŠๆฅใŸใ‚Šใ™ใ‚‹ใฎใซไฝฟใฃใฆใ„ใพใ™ใ€‚(ไฝฟใ„ใซใใ„ใงใ—ใ‚‡ใ†ใ‹?)

ใจๅ…ฅๅŠ›ใ—ใฆใ‹ใ‚‰ C-z ใจใ™ใ‚‹ใจ fg ls ใŒๅฎŸ่กŒใ•ใ‚Œใ€

fg ls ใงใฏใชใใฆๅ˜ใซ fg ใŒๅฎŸ่กŒใ•ใ‚Œใ‚‹ใฏใšใชใฎใงใ™ใŒใ€็ขบใ‹ใซ fg ls ใŒๅฎŸ่กŒใ•ใ‚Œใฆใ„ใพใ™ใ‹? (ใใ‚Œใฏ่€ƒใˆใซใใ„ใฎใงใ™ใŒใ€ใ‚‚ใ—ใใ†ใงใ‚ใ‚Œใฐไฝ•ใ‚‰ใ‹ใฎใƒใ‚ฐใงใ™ใญ) ใ“ใกใ‚‰ใฎๆ‰‹่จฑใงใฏไปฅไธ‹ใฎใ‚ˆใ†ใซใชใ‚Šใ€C-z ใง sleep 10 ใŒๅ†้–‹ใ•ใ‚Œใพใ™ใ€‚็”ณใ—่จณใ‚ใ‚Šใพใ›ใ‚“ใŒใ€ไปŠไธ€ๅบฆใ€ๅ†็พๆ€งใซใคใ„ใฆใ”็ขบ่ชใ„ใŸใ ใ‘ใพใ›ใ‚“ใ‹ใ€‚

[murase@padparadscha 1 ble]$ sleep 10
^Z
[2]+  ๅœๆญข                  sleep 10
[ble: exit 148]
[murase@padparadscha 2 ble]$ ls
sleep 10
[murase@padparadscha 1 ble]$ ls

bash ใงใฏ C-z ใฏใƒ—ใƒญใƒณใƒ—ใƒˆใซใŠใ„ใฆๆ„ๅ‘ณใ‚’ๆŒใกใพใ›ใ‚“ใ€‚

ใพใ•ใซใใ†ใงใ‚ใ‚‹ใ‹ใ‚‰ใ“ใใ€ๅ‹ๆ‰‹ใชใŒใ‚‰่ถฃๅ‘ณใฎ (ใใ—ใฆๅ€‹ไบบ็š„ใซใŠ่–ฆใ‚ใฎ) ๆฉŸ่ƒฝใ‚’ ble.sh ใซ็››ใ‚Š่พผใ‚“ใ ใฎใงใ”ใ–ใ„ใพใ—ใŸใ€‚

ใ—ใ‹ใ—็ฉบ่กŒใงใฎ C-z ใŒ fg ใ‚’ๅ‘ผใณๅ‡บใ™ใจใ„ใ†ใฎใฏไพฟๅˆฉใชใฎใงใ€
(Bash ใงใฏ่ฆ‹ๆŽ›ใ‘ใชใ„ใงใ™ใŒ Zsh ใฎๅˆฉ็”จ่€…ใฏใใ†ใ„ใฃใŸ้–ขๆ•ฐใ‚’ไฝœใฃใฆใ„ใ‚‹ๆ–นใ‚‚ๅคšใ„ใ‚ˆใ†ใงใ™)
C-d ็ญ‰ใซๅ‰ฒใ‚ŠๆŒฏใ‚‰ใ‚Œใฆใ„ใ‚‹ -or- ็ณปใฎ widget ใซใ—ใฆๆฌฒใ—ใ„ใงใ™ใ€‚

ๅ€‹ๅˆฅใซ widget ใ‚’ไฝœๆˆใ—ใฆ ble.sh ใซๅ…ฅใ‚Œใฆใ‚‚่‰ฏใ„ใงใ™ใŒใ€ๅ–ใ‚Šๆ•ขใˆใšไปฅไธ‹ใฎใ‚ˆใ†ใซ่จญๅฎšใ‚’ๆ›ธใ„ใฆ้ ‚ใ‘ใ‚Œใฐ็ฉบ่กŒใฎใจใใ ใ‘ fg ใ‚’ๅฎŸ่กŒใ™ใ‚‹ใจใ„ใ†ใ‚ˆใ†ใซใงใใพใ™ใ€‚

function ble/widget/fg-on-empty-line {
  if [[ $_ble_edit_str ]]; then
    ble/widget/bell
  else
    ble/widget/.SHELL_COMMAND fg
  fi
}

ble-bind -f 'C-z' fg-on-empty-line

่ฟฝ่จ˜

ๅ› ใฟใซ็ด ใฎ Bash ใงใ‚‚ใ€ไปฅไธ‹ใฎใ‚ˆใ†ใซ่จญๅฎšใ™ใ‚ŒใฐๅŒใ˜ๅ‹•ไฝœ (ใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใฎ็ทจ้›†ๆ–‡ๅญ—ๅˆ—ใ‚’ใใฎใพใพใซใ—ใŸใพใพ fg ใ‚’ๅฎŸ่กŒใ™ใ‚‹) ใซใงใใพใ™ใ€‚ใŸใ ใ€ใใ†ใ™ใ‚‹ใจไปŠๅบฆใฏ C-z ใงไธ€ๆ™‚ๅœๆญขใงใใชใใชใฃใฆใ—ใพใ† (= SIGTSTP ใŒ้€ใ‚‰ใ‚Œใชใใชใ‚‹) ใฎใงๅ•้กŒใงใ™ใŒใ€‚

$ stty susp undef
$ bind -x '"\C-z": fg'

ไฝฟใ„ใซใใ„ใงใ—ใ‚‡ใ†ใ‹?

ใ„ใˆใ€ไฝฟใ„ใ‚„ใ™ใ„ใงใ™ใ€‚Zsh ใ‚’ๅˆฉ็”จใ—ใฆใ„ใŸ้ ƒใฏ็งใ‚‚ไผผใŸใ‚ˆใ†ใชๆŒ™ๅ‹•ใซใ—ใฆใ„ใพใ—ใŸใ€‚
ใพใŸใ€ใ€Œใƒ—ใƒญใƒณใƒ—ใƒˆใซๅ…ฅๅŠ›ๆ–‡ๅญ—ใŒๆˆปใ‚‹ใ€ใจใ„ใ†ไป•ๆง˜ใชใ‚‰ใ€็ฉบ่กŒใ‹ใฉใ†ใ‹ใฎๅˆคๅฎšใฏๅฟ…่ฆใชใ„ใงใ™ใญใ€‚ๅคฑ็คผใ—ใพใ—ใŸใ€‚

ใƒ•ใ‚กใ‚คใƒซใฎไธญ่บซใ‚’็ขบ่ชใ—ใชใŒใ‚‰ๅฐ‘ใ—ใšใคใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒณใ‚’็ทจ้›†ใ™ใ‚‹

ใชใ‚‹ใปใฉใ€็ขบใ‹ใซใ“ใ‚Œใฏไพฟๅˆฉใงใ™ใญใ€‚
็งใฏใšใฃใจ Vim ๅ†…่”ตใฎ :sh ใ‚’ไฝฟใฃใฆใ„ใพใ—ใŸใŒใ€ๅฏงใ‚ C-z ใง่กŒใๆฅใ™ใ‚‹ๆ–นใŒๆฅฝใ‹ใ‚‚ใ—ใ‚Œใชใ„ใงใ™ใ€‚
(:sh ใฏไธ€ๅบฆ็ต‚ไบ†ใ™ใ‚‹ใจๅฑฅๆญดใฏๆฎ‹ใ‚Šใพใ™ใŒใƒ—ใƒญใƒณใƒ—ใƒˆ่กŒใŒไฟๅญ˜ใ•ใ‚Œใชใ„ใฎใง)


fg ใงใชใ fg ls ใŒๅฎŸ่กŒใ•ใ‚Œใ‚‹ไปถใงใ™ใŒใ€ๆœ€ๆ–ฐ็‰ˆใงใฏ akinomyoga ใฎไปฐใ‚‹้€šใ‚ŠใฎๆŒ™ๅ‹•ใซใชใ‚Šใพใ—ใŸใ€‚ใ‚‚ใ—ใ‹ใ™ใ‚‹ใจ็งใฎๅ‹˜้•ใ„ใ ใฃใŸๅฏ่ƒฝๆ€งใ‚‚ใ‚ใ‚Šใพใ™โ€ฆโ€ฆใ€‚
ใŠๆ‰‹ๆ•ฐใŠใ‹ใ‘ใ—ใฆ็”ณใ—่จณ็„กใ„ใงใ™ใ€‚

Commit ID: e92fec8

ใ‚ใจใ‚นใƒˆใƒผใ‚ซใฟใŸใ„ใงๆฐ—ๆŒใกๆ‚ชใ„ใงใ™ใŒใ€่ช•็”Ÿๆ—ฅใŠใ‚ใงใจใ†ใ”ใ–ใ„ใพใ™ :birthday:

ใ‚ใจใ‚นใƒˆใƒผใ‚ซใฟใŸใ„ใงๆฐ—ๆŒใกๆ‚ชใ„ใงใ™ใŒใ€่ช•็”Ÿๆ—ฅใŠใ‚ใงใจใ†ใ”ใ–ใ„ใพใ™ ๐ŸŽ‚

ใ”ไธๅฏงใซใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™! @cmplstofB ใ•ใพใฏ็‰ฉ็†ใฎๅญฆ็”Ÿใ•ใ‚“ใชใฎใงใ™ใ‹?


ๅ–ใ‚Šๆ•ขใˆใšใ“ใกใ‚‰ใฎ Issue ใฏ Close ใ—ใพใ™ใญใ€‚ใ‚‚ใ—

fg ใงใชใ fg ls ใŒๅฎŸ่กŒใ•ใ‚Œใ‚‹ไปถใงใ™ใŒใ€ๆœ€ๆ–ฐ็‰ˆใงใฏ akinomyoga ใฎไปฐใ‚‹้€šใ‚ŠใฎๆŒ™ๅ‹•ใซใชใ‚Šใพใ—ใŸใ€‚

ใŒๅ†็พใ—ใŸๅ ดๅˆใซใฏๆ”นใ‚ใฆใ“ใกใ‚‰ใ‚’ Open ใ—ใฆไธ‹ใ•ใ„ใพใ›

็‰ฉ็†ใฎๅญฆ็”Ÿใ•ใ‚“ใชใฎใงใ™ใ‹?

ใพใ‚๏ผŒไธ€ๅฟœใใ†ใงใ™ใ€‚ๅฏŸใ›ใ‚‹ใจๆ€ใ„ใพใ™ใŒใ‹ใชใ‚Š้ฆฌ้นฟใงใ™ใ€‚

ใ„ใˆใ€ใใ‚“ใชใ“ใจใ‚ใ‚Šใพใ™ใ‹? ่‹ฅใ„ใฎใซ (ใ™ใฟใพใ›ใ‚“ไน้‡ใ‚Šใ‚“ใงๆคœ็ดขใ—ใพใ—ใŸ) ใ‚ˆใใ”ๅญ˜็Ÿฅใงๆ„Ÿๅฟƒใ—ใฆใ„ใ‚‹ใจใ“ใ‚ใงใ™ใ€‚

ๅ”ฏใฎ็คพไบค่พžไปคใงไปฐใฃใฆใ„ใ‚‹ใ ใ‘ใ‹ใ‚‚ใ—ใ‚Œใชใ„ใจใ“ใ‚่€ๅฉ†ๅฟƒใชใŒใ‚‰็ง่ฆ‹ใ‚’่ฟฐในใ•ใ›ใฆใ„ใŸใ ใใพใ—ใฆใ™ใฟใพใ›ใ‚“ใŒใ€ๅญฆ็”Ÿใ ใจใ€Œ้ ญใฎ่‰ฏใ—ๆ‚ชใ—ใ€ใฎใ‚ˆใ†ใช็™บๆƒณใซใจใ‚‰ใ‚ใ‚ŒใŒใกใงใ™ใŒใใฎใ‚ˆใ†ใชใ‚‚ใฎใฏใ‚ใ‚Šใพใ›ใ‚“ (ใ‚ใ‚‹ใจใ—ใฆใ‚‚ๆ™ฎ้€šใฏใใ‚ŒใŒๅŠนใใปใฉ้ ญใ‚’ไฝฟใ„ๅˆ‡ใ‚‹ใ“ใจใฏใ‚ใ‚Šใพใ›ใ‚“)ใ€‚็’ฐๅขƒใ•ใˆๆ•ดใฃใฆใ„ใ‚Œใฐใ€็ตๅฑ€ใฎใจใ“ใ‚ใ€Œใใฎ็‰ฉไบ‹ใซ็ด”็ฒ‹ใซ่‡ชๅˆ†ใฎ่ˆˆๅ‘ณใ‚’่ฆ‹ใ„ใ ใ›ใŸใ‹ใฉใ†ใ‹ใ€ใ ใ‘ใ—ใ‹ใชใ„ใชใ€ใจใ„ใ†ใฎใฏๆœ€่ฟ‘ใคใใฅใๆ€ใ†ใ“ใจใงใ”ใ–ใ„ใพใ™ใ€‚

Was this page helpful?
0 / 5 - 0 ratings