首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用fish内置编辑器编辑某些脚本时插入新行?

问如何在使用fish内置编辑器编辑某些脚本时插入新行?
EN

Stack Overflow用户
提问于 2018-04-02 06:40:53
回答 2查看 1.1K关注 0票数 5

在输入鱼壳中的多行脚本时,例如我输入了这些脚本

代码语言:javascript
复制
$ for file in *.txt
    echo $file
  end

我的插入符号是在单词end之后。现在我想在它前面插入一行,使它像:

代码语言:javascript
复制
$ for file in *.txt
    echo $file
    echo "hello"   // I want to insert this line
  end

但是我发现,如果我在echo $file上和后面移动插入符号,然后按enter(或cmd/option/ctrl+enter),它只运行整个脚本而不插入新行。我得把它们复制到另一个编辑器,编辑后再复制回来。

有什么办法吗?

更新:

我刚刚上传了一个录制https://asciinema.org/a/i7pOWhpdXUu0RLVOAMjVJTXbn的屏幕。在录音中,我将插入符号移到echo之后并按下option + enter,但它执行脚本而不是插入新行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-02 16:36:49

fish将转义+换行符绑定为无条件插入换行符。在Mac上,您通常会按“选项+返回”。但是,默认情况下,Mac终端模拟器不会发送转义换行符。使用iTerm2,您可以请求该选项作为转义,在Preferences->Profiles->Key下:

​

​

现在绑定将是活动的,选项返回将无条件地插入一个换行符。

(如果您愿意,可以为这种情况添加一个键映射。)

您可以用安装在fish旁边的fish_key_reader来确认终端从模拟器接收到什么。

票数 7
EN

Stack Overflow用户

发布于 2018-04-02 11:53:32

在默认绑定中,Alt-Enter将始终插入新行:

代码语言:javascript
复制
> bind|fgrep \\n
bind \e\n commandline\ -i\ \\n
bind \e\r commandline\ -i\ \\n
...

根据您的系统配置,Enter/Return键可能发送换行符(\n)或回车字符(\r),这就是为什么有两个条目。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49606501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档