我经常使用vim,我的地区经常停电。所以结果是我*.swp在我的电脑上散布了许多文件。
我想一个别名rm,要么删除所有文件的命令.swp,~,.netrwhist,.log或.bak扩展系统范围内(或至少在我的主目录)。即使我在~/Desktop.
我该如何实施?
假设我有一个名为的文件,filename123.txt并且它是单个文件,我可以locate使用命令locate filename123. 它只返回这个文件。
现在我想用vi/打开它vim。但我不想去那个位置并键入vi命令后跟文件名。在这里,我希望将 的结果locate filename123附加到 vi 命令。我怎么能这样做?我已经尝试过:
locate filename123 | vi
Run Code Online (Sandbox Code Playgroud)
但这不起作用。这个错误出现在终端中:
santosh@santosh:~$ locate filename123 | vi
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...
Vim: Finished.
Run Code Online (Sandbox Code Playgroud) 我使用过 VS Code,并且喜欢将窗口拖放到右侧以创建垂直分割的方式。
有时我用 vim ( vim -p *py)打开许多文件。在浏览选项卡时,我觉得这个特定的选项卡应该是垂直分割的。
忘记拖放部分,如何使当前选项卡垂直分割?(我已经splitright定了)
正如sparrow1029所建议的,:vs sb#有效,但保持前一个缓冲区完好无损,我们可以以某种方式删除它吗?也许某些功能绑定到击键?
我有一个jobscount()功能:
jobscount() {
local stopped='$(jobs -s | wc -l | tr -d " ")'
local running='$(jobs -r | wc -l | tr -d " ")'
echo -n "${running}r/${stopped}s"
}
Run Code Online (Sandbox Code Playgroud)
我在我的$PS1:
PS1=" \w $(jobscount) \$ "
Run Code Online (Sandbox Code Playgroud)
唯一的问题是如果没有后台进程在运行或没有停止的作业,这个功能会无用地占用$PS1空间。我想要的是,如果stopped或running值中的任何一个大于0,那么它才会出现。
我有一项服务,基本上是游牧客户端。它的最小版本如下所示:
[Unit]
Description=Nomad Client
Documentation=https://nomadproject.io/docs/
After=network-online.target
[Service]
ExecStart=/usr/bin/nomad agent -config /etc/myapp/myconfig.json
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
该服务使用 中提供的特定配置启动游牧进程/etc/myapp/myconfig.json。
我正在使用的应用程序是围绕这个游牧客户端构建的,在应用程序的生命周期中,配置文件可以随时更改。
/etc/myapp/myconfig.json我想每当磁盘上发生更改时重新启动服务。
就我而言,问题出在 SourceForge.net 上。其实我是想下载这些文件:
http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2/download
http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-docs-2.9.4.0.tar.bz2/download
Run Code Online (Sandbox Code Playgroud)
事情并不顺利,所以我记录了wget,日志文件是:
--2012-08-21 09:52:17-- http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-src-2.9.4.0.tar.bz2/download
Resolving sourceforge.net... 216.34.181.60
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18846 (18K) [text/html]
Saving to: `download'
0K .......... ........ 100% 6.30K=2.9s
2012-08-21 09:52:25 (6.30 KB/s) - `download' saved [18846/18846]
--2012-08-21 09:52:25-- http://sourceforge.net/projects/wxpython/files/wxPython/2.9.4.0/wxPython-docs-2.9.4.0.tar.bz2/download
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 200 OK
The file is already fully retrieved; nothing to do.
FINISHED --2012-08-21 09:52:28--
Downloaded: 1 files, 18K in 2.9s (6.30 KB/s)
Run Code Online (Sandbox Code Playgroud)
正如你在这个日志文件中看到的,我最终得到了一个 …
在我的场景中,我有一些照片,我想将它们分开。目前,我正在做mkdir gallery1 gallery2 gallery3 gallery4 gallery5 gallery6,但这是一个痛苦。我认为我们可以更轻松地做到这一点。假设我想创建从gallery7到gallery50 的目录。我该怎么做?
当前目录中有一些无扩展名的文件(名称中没有点)。
我想像这样重命名:
filename -> filename.md
Run Code Online (Sandbox Code Playgroud)
我尝试这样做,mv * *.md但这没有帮助。
我对一个函数感兴趣,该函数接受扩展名的参数并相应地重命名,另一个用于文件执行操作。
我有一个文件夹,其中包含许多 C 源文件和相同数量的编译输出文件。
我为所有这些文件设置了可执行位,但由于某种原因它丢失了,使它们无法执行。(我认为这是因为我将该文件夹移动到 NTFS 分区一段时间)。
我想让它们(但不是我目录中的其他文件)再次可执行。一种可能的方法是将所有源文件从该文件夹移动到一个临时文件夹并执行:
chmod +x *
Run Code Online (Sandbox Code Playgroud)
然后将源文件移回当前文件夹。
是否可以在不移动文件的情况下执行相同操作?
编译后的输出文件是无扩展名的(在 C 中)。
我经常使用Vim,我知道如何在插入模式下启动 vim。所以我有一个名为别名vii在我的.bash_aliases文件。
另一方面,我也经常使用Git,并且在我的.gitconfig:
[core]
editor = vi
Run Code Online (Sandbox Code Playgroud)
要编写提交消息,每次都会打开 vi 编辑器,我必须进入插入模式。所以我想更换的vi有vii,并且做。
但问题是,当我这样做时git commit,不是在插入模式下打开 vim,而是出现以下错误:
error: cannot run vii: No such file or directory
error: There was a problem with the editor 'vii'.
Please supply the message using either -m or -F option.
Run Code Online (Sandbox Code Playgroud)
这清楚地表明 git 不查找.bash_aliases文件,即使它与 bash 没有任何关系。它会直接查看是否存在/usr/bin/vii。如果是,则执行它。
我可以像viiin一样放置 vi 的别名版本/usr/bin/吗?
(并且请不要建议我使用git …
主要问题是我的目录中有许多大写文件(例如Foobar.txt, FooBar.txt, even FOOBAR.txt)。而且我发现通过准确键入来查找文件很麻烦(如果我知道确切的文件名,我为什么要使用find?)。所以我只想输入foobar并希望结果中的所有三个文件
此外,我使用*字符串的两侧来匹配文件名前面和后面的任意数量的字符。
我想要一个执行此操作的别名或函数。