如何有效地浏览文件系统?

如何有效地浏览文件系统?

这个问题是关于“通过终端做所有事情”的心态。我发现浏览文件系统效率非常低。我的典型工作流程是:

我想去~/foo/bar/boo/far/my/project/file.txt

cd ~
cd foo/b...???
# okay, I won't quite remember what bar was called
# let me just go to "foo" and view it
cd foo
ls
# Oh, it was bar
cd bar
# Now, what was after bar again?
ls
# boo, that is it.
cd boo
pwd
ls
cd for
cd my
# ERROR: my not found
ls
# at this point I'm kinda lost where I am
pwd
cd ..
cd far
cd my
cd pro<tab>
cd proj<tab>
cd proje<tab>
# wtf am I in the wrong directory again?
ls
# notice there is a directory called projectiles, that's why it doesn't work
cd project
vim fi<tab>

现在我想去 ~/foo/bar/boo/settings.txt

cd ../../..
vim set<tab>
# notice I'm editing a completely different file
# wtf
# :q
ls
# oh I'm in the wrong place
pwd
cd ..
vim set<tab>
# :q
# Done!

在完美的世界中,我可能只需要输入vim ~/foo/bar/boo/far/my/project/file.txt,但在现实世界的工作流程中,这相当于只从第 0 行到最后一行输入程序的源代码,而不会丢失任何字符。这就是现在的工作方式——你需要某种互动,这是一个循序渐进且混乱的过程。使用cd,lspwd对此对我来说效率非常低。

有没有更好的办法?我错过了什么吗?

答案1

有很多不同的选项可供选择来帮助解决这些问题:

  • 使用别名

    • 既适用于常用目录,例如,alias q='cd /home/durrantm/Dropbox/94_2015/work/code/ruby__rails/ruby/ruby_quiz'也适用于常用命令。当您每天打字一百次时,甚至alias p=pwd可以让生活变得更轻松。pwd您会注意到单字母别名是我最喜欢的一个技巧。
  • 自定义您的 PS1 提示(搜索 PS1 提示)以帮助显示您所在的位置。这是我的: 在此输入图像描述 特征:

    • 显示前 3 个和后 2 个目录(当超过 5 层时,中间用下划线表示)
    • 是否有回车符,因此实际提示位于新行
    • 使用颜色来表示不同的信息
    • 当我在 git 项目中时显示我的 git 分支。
    • 适用于 Ubuntu 和 OSX(我每天都使用)
    • 显示日期、用户和机器

    更多内容请参见https://unix.stackexchange.com/a/127800/10043

  • 在 vim 中使用 ctrl-p,如 muru 所示

  • 安装并使用自动跳转(https://github.com/wting/autojump)来记住您访问过的命令行目录。这可能非常适合您。

  • 命令行模糊查找器也可能适合您的风格 - 更多信息请参见https://github.com/junegunn/fzf

  • 使用 z-shell,它往往有更多内置支持和更好的选项,例如 cdpath(Z Shell 的菜单格式目录完成)和 Z Shell 的 autocd 选项,

答案2

如果您使用vim,请考虑使用CtrlP 插件。第一次在目录上运行时可能需要一段时间来索引文件,但之后速度很快。它匹配整个路径,因此只要您准确地记住路径的某些部分,它就非常有用。这是我在以下位置查找文件/usr/share

在此输入图像描述 在此输入图像描述

/usr/share有超过 150000 个(根据 178038 个常规文件find)文件,所以我将let g:ctrlp_max_depth = 10和添加let g:ctrlp_max_files = 0到我的.vimrc.第一次运行时索引需要几秒钟。

相关内容