在 my 中,.bash_profile
我设置了短变量以简化对一些常见目录的访问。例如:
lh=/var/log/httpd
hc=/etc/httpd/conf
Run Code Online (Sandbox Code Playgroud)
所以我像这样使用它,例如:
$ cd $lh
$ less $lh/access_log
Run Code Online (Sandbox Code Playgroud)
但是当我想使用 Tab 键来自动完成文件名(在这样一个包含变量引用的参数中)时,bash 执行自动完成但还在\
变量名的美元符号之前插入一个反斜杠。
例如,键入less $lh/acc
然后按 Tab 将扩展为:less \$lh/access_log
。
当然,我想要的是less $lh/access_log
甚至less /var/log/httpd/access_log
. (奇怪的是,cd
在这种情况下,自动完成命令根本不起作用,这个问题已经讨论过了)
我知道使用shell-expand-line
(default key: Ctrl+ Alt+ E)有一种替代方法,但它远非完美,因为它也扩展了别名,并且它没有引用带有特殊字符(空格,...)的路径。
即使在路径中使用了 shell 变量,bash 中有没有办法用 Tab 扩展文件名?
我想使用 Meson 构建一个新的 C++ 项目。我需要的第一件事是 Boost 库的依赖项。但是,尽管 Boost 库安装在我的 Arch 系统上(标头和库),Meson 抱怨它找不到它们。
这是介子构建文件:
project('myproj', 'cpp')
boost_dep = dependency('boost')
executable('myproj', 'main.cpp', dependencies : boost_dep)
Run Code Online (Sandbox Code Playgroud)
源文件main.cpp
:
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的系统上安装的一些 Boost 文件的部分列表:
$ ls /usr/lib/libboost*|head -n5; ls /usr/include/boost/*|head -n5
/usr/lib/libboost_atomic.a
/usr/lib/libboost_atomic.so
/usr/lib/libboost_atomic.so.1.65.1
/usr/lib/libboost_chrono.a
/usr/lib/libboost_chrono.so
/usr/include/boost/aligned_storage.hpp
/usr/include/boost/align.hpp
/usr/include/boost/any.hpp
/usr/include/boost/array.hpp
/usr/include/boost/asio.hpp
Run Code Online (Sandbox Code Playgroud)
ninja
我的项目内命令的输出:
[0/1] Regenerating build files.
The Meson build system
Version: 0.43.0
Source dir: /home/io/prog/myproj/src
Build dir: /home/io/prog/myproj/builddir
Build type: native build
Project name: myproj
Native C++ compiler: …
Run Code Online (Sandbox Code Playgroud) 是否可以在 Gnu 屏幕中加载多个配置文件?
我尝试了多种-c
选择,但徒劳无功。
基本思想是保持我的默认~/.screenrc
加载,并在其上方添加自定义会话配置。