小编Håk*_*and的帖子

Emacs lua-mode(文件模式规范错误)

我收到以下错误

文件模式指定错误:(错误"未知rx形式`group-n'")

当我尝试在emacs中编辑.lua文件时.我使用GNU Emacs 23.3.1,我的.emacs文件中有以下内容:

(autoload 'lua-mode "lua-mode" "Lua editing mode." t)
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
(add-to-list 'interpreter-mode-alist '("lua" . lua-mode))
Run Code Online (Sandbox Code Playgroud)

lua-modehttp://immerrr.github.com/lua-mode/安装.我试图使用该--debug-init选项运行emacs ,但它没有进入调试器,而是打开.lua文件text-mode而不是lua-mode..

(另请参阅Emacs lua-mode问题:( void-function interactively-called-p))

emacs lua elisp

2
推荐指数
1
解决办法
589
查看次数

Bash子串扩展数组

我有一组带有给定后缀的文件.例如,我有一组带后缀的pdf文件.pdf.我想使用子字符串扩展获取没有后缀的文件的名称.

对于我可以使用的单个文件:

file="test.pdf"
echo ${file:0 -4}
Run Code Online (Sandbox Code Playgroud)

为了对所有文件执行此操作,我现在尝试:

files=( $(ls *.pdf) )
ff=( "${files[@]:0: -4}" )
echo ${ff[@]}
Run Code Online (Sandbox Code Playgroud)

我现在得到一个错误说substring expression < 0...

(我想避免使用for循环)

arrays bash substr expansion

2
推荐指数
1
解决办法
6114
查看次数

如何在bash中破坏tail -f命令

我该如何打破tail -fbash?由于这个问题与这个问题有关

尾巴-f | 一旦发现数据,awk和end tail

我尝试了以下方法:

#! /bin/bash

tvar="testing"
(set -o pipefail && tail -f <<< "$tvar" | awk '{print; exit} END{ exit 1}'  )
Run Code Online (Sandbox Code Playgroud)

但是脚本仍然挂在 tail -f

bash

2
推荐指数
1
解决办法
495
查看次数

如何自动切换到 Emacs 中的发生缓冲区?

当在occur正则表达式上运行时,框架分成两个窗口,occur缓冲区如下所示。但是,键盘焦点仍在原始缓冲区中。如何以编程方式更改此行为,使occur缓冲区成为当前缓冲区?我试过这个:

(defun test-occur ()
  (interactive)
  (occur "test")
  (switch-to-buffer "*Occur*"))
Run Code Online (Sandbox Code Playgroud)

但它不起作用..(即:现在occur缓冲区同时显示在顶部和底部窗口中)

emacs elisp

2
推荐指数
1
解决办法
280
查看次数

将$ 3中的所有值更改为零

我有一个看起来像这样的文件:

2360 111037877 111105745 111161458
505 111128359 111026865 111006164 
375 117170057 0 0
247 117086016 0 0
613 117030996 117010050 117029287
Run Code Online (Sandbox Code Playgroud)

我想将第3列中的所有值更改为零,以便文件如下所示:

2360 111037877 0 111161458
505 111128359 0 111006164 
375 117170057 0 0
247 117086016 0 0
613 117030996 0 117029287
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我知道这是一个非常基本的问题,但我不能用awk来做.我试图做这样的事情:

awk '{$3 = 0}' old file > new file
Run Code Online (Sandbox Code Playgroud)

awk '$3 == "*" { $3=0}' old file > new file
Run Code Online (Sandbox Code Playgroud)

bash shell awk

2
推荐指数
1
解决办法
49
查看次数

如何在 awk 中打印到 bash 文件描述符

我想在 bash 中打开一个文件描述符,稍后从 .bashrc 中输出到该文件描述符awk

考虑以下bash脚本:

#! /bin/bash

exec 6>&1
awk 'BEGIN{print "FD1" >/dev/fd/1 ; print "FD6" >/dev/fd/6 }'
exec 6>&-
Run Code Online (Sandbox Code Playgroud)

问题是上面根本没有输出任何内容。我使用 Gnu Awk。

bash awk

2
推荐指数
1
解决办法
639
查看次数

为什么无法从File :: Spec导入单个函数?

考虑:

use File::Spec qw(catfile);
use File::Copy qw(copy);

catfile("a","b");
copy("a","b");
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Undefined subroutine &main::catfile called 
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 use File::Spec::Functions,但那将导入所有函数File::Spec,这不是我想要的.

perl

2
推荐指数
1
解决办法
67
查看次数

将git存储库传输到Web服务器

我正在尝试将本地git存储库传输到Web服务器.我遵循这里的方法: Git:将现有存储库从PC移动到服务器,从服务器克隆

首先,我在本地计算机上初始化了一个空存储库,并添加了两个文件并进行了提交.然后在服务器上我创建了一个文件夹/www/git,并更改为该目录并完成了

git init --shared --bare
Run Code Online (Sandbox Code Playgroud)

然后在我运行的本地机器上

git remote add server user@server.com:/www/git
Run Code Online (Sandbox Code Playgroud)

然后我做了

git push server master
Run Code Online (Sandbox Code Playgroud)

这给出了如下输出:

Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 2.13 KiB, done.
Total 4 (delta 0), reused 0 (delta 0)
To user@server.com:/www/git
 * [new branch]      master -> master
Run Code Online (Sandbox Code Playgroud)

但是在服务器上,我看不到我在本地计算机上添加的两个文件中的任何一个.如果我这样做ls,/www/git我得到:

HEAD  branches  config  description  hooks  info  objects  refs
Run Code Online (Sandbox Code Playgroud)

但这些文件和目录中没有一个是我从本地机器推出的文件.

git

2
推荐指数
1
解决办法
100
查看次数

使用Perl中的切片初始化一组哈希键

我正在尝试使用切片初始化哈希:

use warnings;
use strict;
use Data::Dump qw(dump);

my %h;
my $a=['a','b'];

@h{@$a}=(1)x@$a;
dump(%h);
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我尝试做一个子哈希,例如 %h{test}

@h{test}{@$a}=(1)x@$a;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Scalar value @h{test} better written as $h{test} at ./p.pl line 14.
syntax error at ./p.pl line 14, near "}{"
Execution of ./p.pl aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)

perl hash

2
推荐指数
1
解决办法
119
查看次数

等待超时的子进程

我想等待两个进程(或更多)完成,或者一个计时器倒计时。计时器倒计时将在终端窗口中输出。例如:

use warnings;
use strict;
use feature qw(say);

my $pid1 = fork();
if ( $pid1 == 0 ) {
    runTask1();
    exit 0;
}

my $pid2 = fork();
if ( $pid2 == 0 ) {
    runTask2();
    exit 0;
}

my $timer = startTimer();

say "Waiting for child processes..";
my $counter = 20;
my $i       = 0;
while (1) {
    my $pid = wait;
    last if ( $pid == -1 );
    if ( $pid == $timer ) {
        $counter--;
        say $counter;
        $timer …
Run Code Online (Sandbox Code Playgroud)

perl

2
推荐指数
1
解决办法
1618
查看次数

标签 统计

bash ×4

perl ×3

awk ×2

elisp ×2

emacs ×2

arrays ×1

expansion ×1

git ×1

hash ×1

lua ×1

shell ×1

substr ×1