Skip to content

zcgo707/ftree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒณ ftree

็ปˆ็ซฏ้‡Œ็š„ใ€Œๆ–‡ไปถ่ต„ๆบ็ฎก็†ๅ™จใ€ ยท ไธ‰็งๆจกๅผ่ฆ†็›–ๆ‰€ๆœ‰ๆ–‡ไปถๆต่งˆๅœบๆ™ฏ

License: MIT Python Platform: Linux/WSL fzf rich

โœจ ็‰นๆ€ง โ€ข ๐Ÿ“ฆ ้กน็›ฎ็ป„ๆˆ โ€ข ๐Ÿ”ง ๅฎ‰่ฃ… โ€ข ๐Ÿš€ ไฝฟ็”จๆŒ‡ๅ— โ€ข ๐Ÿ—๏ธ ๆžถๆž„


โœจ ็‰นๆ€ง

ๆจกๅผ ๅ‘ฝไปค ไธ€ๅฅ่ฏๆ่ฟฐ
๐Ÿ–ฅ๏ธ ๆกŒ้ข็ฝฎ้กถๅฐ็ช— ftree --widget ๅง‹็ปˆ็ฝฎ้กถ็š„ GUI ๆ–‡ไปถๆ ‘๏ผŒๅŒๅ‡ป็กฎ่ฎคๅŽไธ€้”ฎ fcdw cd
๐ŸŒฒ ็ปˆ็ซฏๅฝฉ่‰ฒๆ ‘ ftree Rich ๅบ“ๆธฒๆŸ“็š„ๅฝฉ่‰ฒ็›ฎๅฝ•ๆ ‘๏ผŒๆ”ฏๆŒ --watch ๅฎžๆ—ถ็›‘ๅฌ
โšก FZF ๅฟซ้€Ÿ่ทณ่ฝฌ fcd ๆจก็ณŠๆœ็ดข็›ฎๅฝ•ๅ๏ผŒ้ข„่งˆๅ†…ๅฎน๏ผŒEnter ๅณ cd
๐Ÿ“Ÿ Tmux ๆตฎๅŠจ็ช— ftree --popup tmux display-popup ๆตฎๅŠจ็ช—ๅฃ๏ผŒไธ็ฆปๅผ€็ปˆ็ซฏ

๐Ÿ–ผ๏ธ ๆˆชๅ›พ

๏ผˆๆญคๅค„ๅˆ†้š”็ฌฆๅŒบๅŸŸๅฐ†ๆ”พ็ฝฎๅฎž้™…ๆˆชๅ›พ๏ผ‰

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ftree  -  ๆ–‡ไปถๅฏผ่ˆช        [P][-][=][X] โ”‚  โ† ๆ— ่พนๆก†่‡ชๅฎšไน‰็ช—ๅฃ
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  / > home > linhua > projects           โ”‚  โ† ้ขๅŒ…ๅฑ‘่ทฏๅพ„๏ผˆๅฏ็‚นๅ‡ป่ทณ่ฝฌ๏ผ‰
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ v [+]  projects                         โ”‚
โ”‚   v [+]  app                            โ”‚  โ† ็‚นๅ‡ป >/v ๅฑ•ๅผ€ๆŠ˜ๅ 
โ”‚     > [+]  Cloudy                       โ”‚
โ”‚     > [+]  ai_disk_cleaner              โ”‚    ๅŒๅ‡ป่ฟ›ๅ…ฅ็›ฎๅฝ•
โ”‚     > [+]  mem_sys                      โ”‚
โ”‚   > [+]  ml                             โ”‚
โ”‚   > [+]  web                            โ”‚
โ”‚   [+]  INDEX.html                       โ”‚
โ”‚   [+]  PROJECT_MAP.md                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  /home/linhua/projects                  โ”‚
โ”‚  [ projects ]    [ ็กฎ่ฎค่ทณ่ฝฌ ]           โ”‚  โ† ่“ๅบ•ๆŒ‰้’ฎ็กฎ่ฎค
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ ้กน็›ฎ็ป„ๆˆ

1๏ธโƒฃ ftree-widget.py โ€” ๆกŒ้ข็ฝฎ้กถๅฐ็ช— โญ

ๆŠ€ๆœฏ ็”จ้€”
tkinter + overrideredirect(True) ๆ— ่พนๆก†่‡ชๅฎšไน‰ GUI ็ช—ๅฃ
os.scandir() ๆŒ‰้œ€ๆ‰ซๆ็›ฎๅฝ•๏ผŒๅ•ๆฌก 0.1ms๏ผŒไธๅก UI
ๅฎนๅ™จๅผ pack() ๅธƒๅฑ€ ๆฏไธช็›ฎๅฝ•็”จ็‹ฌ็ซ‹ Frame ๅŒ…่ฃน๏ผŒๅฑ•ๅผ€ๆŠ˜ๅ ไธไธฒไฝ
bind_all ๅ…จๅฑ€ไบ‹ไปถ ้ผ ๆ ‡ๆปš่ฝฎ็ฟป้กตใ€้”ฎ็›˜ PageUp/Down/Home/End
ๆ–‡ไปถ IPC ้€š่ฟ‡ ~/.ftree_cd_target ไธŽ Shell ้€šไฟก

ๆ“ไฝœๆ–นๅผ:

ๆ“ไฝœ ๆ•ˆๆžœ
็‚นๅ‡ป > / v ๆˆ–็›ฎๅฝ•ๅ ๅฑ•ๅผ€/ๆŠ˜ๅ ๅญ็›ฎๅฝ•
ๅŒๅ‡ป ็›ฎๅฝ•ๅ ่ฟ›ๅ…ฅ่ฏฅ็›ฎๅฝ•๏ผˆ่ง†ๅ›พๅˆทๆ–ฐๅˆฐ่ฏฅ็›ฎๅฝ•๏ผ‰
็‚นๅ‡ป่ทฏๅพ„ๆ  home / projects ่ทณ่ฝฌๅˆฐๅฏนๅบ”ๆฏ็›ฎๅฝ•
ๆปš่ฝฎ / PgUp / PgDn / โ†‘โ†“ ๆปšๅŠจ้กต้ข
็‚นๅ‡ป [็กฎ่ฎค่ทณ่ฝฌ] โœ… ๅ†™ๅ…ฅ็›ฎๆ ‡่ทฏๅพ„ โ†’ ็ปˆ็ซฏ fcdw ่ทณ่ฝฌ
ๆ‹–ๆ‹ฝๆ ‡้ข˜ๆ  ็งปๅŠจ็ช—ๅฃ
ๅŒๅ‡ปๆ ‡้ข˜ๆ  ๆœ€ๅคงๅŒ–/่ฟ˜ๅŽŸ
[P] [-] [=] [X] ็ฝฎ้กถ / ๆœ€ๅฐๅŒ– / ๆœ€ๅคงๅŒ– / ๅ…ณ้—ญ

2๏ธโƒฃ ftree.py โ€” ็ปˆ็ซฏ็›ฎๅฝ•ๆ ‘

ๆŠ€ๆœฏ ็”จ้€”
rich.Tree ๅฝฉ่‰ฒๆ ‘ๅฝข่พ“ๅ‡บ๏ผŒๆ–‡ไปถ็ฑปๅž‹ๅ›พๆ ‡
rich.Live --watch ๆจกๅผๅฎžๆ—ถๅˆทๆ–ฐ
argparse CLI ๅ‚ๆ•ฐ่งฃๆž
ftree                          # ๅฝ“ๅ‰็›ฎๅฝ•
ftree ~/projects --depth 4     # ๆŒ‡ๅฎšๆทฑๅบฆ
ftree ~/projects --watch       # ๅฎžๆ—ถ็›‘ๅฌ
ftree ~/projects --json        # JSON ่พ“ๅ‡บ๏ผˆๅฏ้›†ๆˆๅ…ถไป–ๅทฅๅ…ท๏ผ‰

3๏ธโƒฃ ftree-fzf.sh โ€” FZF ๅฏผ่ˆชๅ™จ

ๆŠ€ๆœฏ ็”จ้€”
fzf ๆจก็ณŠๆœ็ดข๏ผŒๅฎžๆ—ถ่ฟ‡ๆปค
tree ๅณไพง้ข„่งˆ็ช—ๅฃ
Shell ๅ‡ฝๆ•ฐ ็›ดๆŽฅ cd + ls
fcd ~/projects     # ๆจก็ณŠๆœ็ดข โ†’ Enter ๅณ cd + ls

4๏ธโƒฃ ftree-popup.sh โ€” Tmux ๆตฎๅŠจ็ช—

ๆŠ€ๆœฏ ็”จ้€”
tmux display-popup ่ฆ†็›–ๅœจ็ปˆ็ซฏไน‹ไธŠ็š„ๆตฎๅŠจ็ช—ๅฃ
ftree --popup ~/projects

๐Ÿ”ง ๅฎ‰่ฃ…

ไธ€้”ฎๅฎ‰่ฃ…

git clone https://github.com/zcgo707/ftree.git
cd ftree
chmod +x setup.sh && ./setup.sh
source ~/.bashrc

ๆ‰‹ๅŠจๅฎ‰่ฃ…

# 1. ๅคๅˆถ่„šๆœฌ
mkdir -p ~/scripts ~/.local/bin
cp src/ftree* ~/scripts/
cp bin/* ~/.local/bin/
chmod +x ~/scripts/* ~/.local/bin/*

# 2. ๅฎ‰่ฃ…็ณป็ปŸไพ่ต–
sudo apt-get install -y fzf tree
pip install rich

# 3. ๆทปๅŠ  bashrc ้›†ๆˆ
cat config/bashrc-integration.sh >> ~/.bashrc
source ~/.bashrc

ไพ่ต–ๆธ…ๅ•

ๅทฅๅ…ท ็”จ้€” ๅฎ‰่ฃ…ๅ‘ฝไปค
fzf ๆจก็ณŠๆœ็ดข apt-get install fzf
tree ็›ฎๅฝ•ๆ ‘้ข„่งˆ apt-get install tree
Python 3 + tkinter ๆกŒ้ขๅฐ็ช— WSLg ่‡ชๅธฆ
rich ็ปˆ็ซฏๅฝฉ่‰ฒๆ ‘ pip install rich
tmux 3.2+ ๆตฎๅŠจ็ช—๏ผˆๅฏ้€‰๏ผ‰ apt-get install tmux

๐Ÿš€ ไฝฟ็”จๆŒ‡ๅ—

ๆ—ฅๅธธๆŽจ่ๅทฅไฝœๆต

# ็ปˆ็ซฏ 1: ๅฏๅŠจๆกŒ้ขๅฐ็ช—
ftree --widget ~/projects

# ๅœจ widget ไธญๆต่งˆ โ†’ ๆ‰พๅˆฐ็›ฎๆ ‡็›ฎๅฝ• โ†’ ็‚นๅ‡ปใ€Œ็กฎ่ฎค่ทณ่ฝฌใ€

# ็ปˆ็ซฏ 2: ไธ€้”ฎ่ทณ่ฝฌ
fcdw    # โ†’ cd /home/linhua/projects/app/Cloudy
        # โ†’ ls ๅˆ—ๅ‡บๆ–‡ไปถ

ๅฟซ้€Ÿ็›ฎๅฝ•่ทณ่ฝฌ๏ผˆไธ้œ€่ฆๅฐ็ช—๏ผ‰

fcd                  # ๅฝ“ๅ‰็›ฎๅฝ•ๆจก็ณŠๆœ็ดข
fcd ~/projects       # ๅœจ projects ไธญๆœ็ดข
# ่พ“ๅ…ฅ "cloud" โ†’ ้€‰ไธญ Cloudy โ†’ Enter โ†’ cd + ls

็ปˆ็ซฏ็›ฎๅฝ•ๆ ‘

ftree                     # ๆŸฅ็œ‹ๅฝ“ๅ‰็›ฎๅฝ•ๆ ‘
ftree --watch ~/projects  # ๅฎžๆ—ถ็›‘ๅฌๅ˜ๅŒ–
ftree --depth 2 --no-files ~/projects  # ๅช็œ‹็›ฎๅฝ•

๐Ÿ—๏ธ ๆžถๆž„่ฎพ่ฎก

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ftree-widget โ”‚     โ”‚   ftree.py       โ”‚     โ”‚ ftree-fzf.shโ”‚
โ”‚  (tkinter)    โ”‚     โ”‚   (rich)         โ”‚     โ”‚ (fzf+tree)  โ”‚
โ”‚               โ”‚     โ”‚                  โ”‚     โ”‚             โ”‚
โ”‚  ๆกŒ้ข็ฝฎ้กถๅฐ็ช—  โ”‚     โ”‚  ็ปˆ็ซฏๅฝฉ่‰ฒๆ ‘      โ”‚     โ”‚ ๆจก็ณŠๆœ็ดข่ทณ่ฝฌ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ”‚                    โ”‚                        โ”‚
       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚  ftree (ๅ…ฅๅฃ)  โ”‚
                    โ”‚  bin/ftree     โ”‚
                    โ”‚  ็ปŸไธ€ๅˆ†ๅ‘ๅ‘ฝไปค   โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ fcdw (ๆ–‡ไปถIPC) โ”‚
                    โ”‚ ~/.ftree_cd.. โ”‚
                    โ”‚  โ†’ cd ่ทณ่ฝฌ    โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

่ฟ›็จ‹้—ด้€šไฟก

ftree-widget                     Shell (fcdw)
     โ”‚                              โ”‚
     โ”‚  ็‚นๅ‡ปใ€Œ็กฎ่ฎค่ทณ่ฝฌใ€             โ”‚
     โ”œโ”€โ”€โ†’ ๅ†™ๅ…ฅ path โ”€โ”€โ†’ ~/.ftree_cd_target
     โ”‚                              โ”‚
     โ”‚                    fcdw ๆ‰ง่กŒ โ”‚
     โ”‚                              โ”œโ”€โ”€โ†’ cat ~/.ftree_cd_target
     โ”‚                              โ”œโ”€โ”€โ†’ cd "$target"
     โ”‚                              โ””โ”€โ”€โ†’ ls

๐Ÿ“‚ ้กน็›ฎ็ป“ๆž„

ftree/
โ”œโ”€โ”€ README.md                       โ† ๆœฌๆ–‡ๆกฃ
โ”œโ”€โ”€ LICENSE                         โ† MIT ่ฎธๅฏ่ฏ
โ”œโ”€โ”€ setup.sh                        โ† ไธ€้”ฎๅฎ‰่ฃ…่„šๆœฌ
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ bin/                            โ† ๅ…ฅๅฃๅ‘ฝไปค๏ผˆ้กปๅœจ PATH ไธญ๏ผ‰
โ”‚   โ”œโ”€โ”€ ftree                       โ† ็ปŸไธ€ๅ…ฅๅฃ
โ”‚   โ”œโ”€โ”€ fcd                         โ† fzf ๅฟซ้€Ÿ่ทณ่ฝฌ
โ”‚   โ””โ”€โ”€ fcdw                        โ† ไปŽ widget ่ทณ่ฝฌ
โ”œโ”€โ”€ src/                            โ† ๆ ธๅฟƒๆบไปฃ็ 
โ”‚   โ”œโ”€โ”€ ftree.py                    โ† ็ปˆ็ซฏๅฝฉ่‰ฒ็›ฎๅฝ•ๆ ‘
โ”‚   โ”œโ”€โ”€ ftree-widget.py             โ† ๆกŒ้ข็ฝฎ้กถๅฐ็ช—
โ”‚   โ”œโ”€โ”€ ftree-fzf.sh               โ† fzf ๆœ็ดขๅฏผ่ˆช
โ”‚   โ””โ”€โ”€ ftree-popup.sh             โ† tmux ๆตฎๅŠจ็ช—
โ””โ”€โ”€ config/
    โ””โ”€โ”€ bashrc-integration.sh       โ† Shell ้›†ๆˆ็‰‡ๆฎต

๐Ÿ“„ ่ฎธๅฏ่ฏ

MIT License โ€” ่‡ช็”ฑไฝฟ็”จใ€ไฟฎๆ”นใ€ๅˆ†ๅ‘


๐Ÿ‘ค ไฝœ่€…

zcgo707 โ€” zen707@qq.com

๐Ÿ’ก ้กน็›ฎ็”ฑ Claude Code ๅๅŠฉๅผ€ๅ‘ ยท ๆŒ็ปญไผ˜ๅŒ–ไธญ ๐Ÿš€

ๅฆ‚ๆžœไฝ ่ง‰ๅพ—ๆœ‰็”จ๏ผŒๆฌข่ฟŽ โญ Star ๆˆ–ๆๅ‡บ Issue๏ผ

About

๐ŸŒณ ftree โ€” ๆ–‡ไปถๆ ‘ๅฏผ่ˆชๅ™จ ยท ็ปˆ็ซฏ็›ฎๅฝ•ๆ ‘ ยท ๆกŒ้ข็ฝฎ้กถๅฐ็ช— ยท FZF ๅฟซ้€Ÿ่ทณ่ฝฌ

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors