小编yol*_*yer的帖子

即使在路径中使用了 shell 变量,如何使用 Tab 扩展文件名?

在 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 扩展文件名?

bash autocomplete

6
推荐指数
1
解决办法
1496
查看次数

Meson 找不到 Boost 库

我想使用 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)

compiling c++ boost

5
推荐指数
1
解决办法
4694
查看次数

Gnu 屏幕:加载多个配置文件

是否可以在 Gnu 屏幕中加载多个配置文件?

我尝试了多种-c选择,但徒劳无功。

基本思想是保持我的默认~/.screenrc加载,并在其上方添加自定义会话配置。

gnu-screen

3
推荐指数
1
解决办法
1171
查看次数

标签 统计

autocomplete ×1

bash ×1

boost ×1

c++ ×1

compiling ×1

gnu-screen ×1