Zsh 无法正确自动完成我的 ssh 命令

2024-02-01

我在 ssh 自动完成方面遇到一些问题。 我希望我的 zsh 在我的 .ssh/config 文件上自动完成,但到目前为止它只对 /etc/hosts 文件执行此操作。 我发现如何通过添加此配置来不使用主机文件

zstyle ':completion:*:ssh:*' hosts off

但我无法成功让 zsh 查看 .ssh/config 文件 我尝试过这个,但希望不大,但没有成功

zstyle ':completion:*:ssh:*' config on

这是我的 .zshrc 文件

    # If you come from bash you might have to change your $PATH.
    #export PATH=$HOME/bin:/usr/local/bin:/usr/local/sbin:~/Documents/workspace/flutter/bin:$PATH

    # Path to your oh-my-zsh installation.
    export ZSH=/Users/thoma/.oh-my-zsh

    # Set name of the theme to load. Optionally, if you set this to "random"
    # it'll load a random theme each time that oh-my-zsh is loaded.
    # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
    ZSH_THEME="agnoster"

    # Set list of themes to load
    # Setting this variable when ZSH_THEME=random
    # cause zsh load theme from this variable instead of
    # looking in ~/.oh-my-zsh/themes/
    # An empty array have no effect
    # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

    # Uncomment the following line to use case-sensitive completion.
    # CASE_SENSITIVE="true"

    # Uncomment the following line to use hyphen-insensitive completion. Case
    # sensitive completion must be off. _ and - will be interchangeable.
    # HYPHEN_INSENSITIVE="true"

    # Uncomment the following line to disable bi-weekly auto-update checks.
    # DISABLE_AUTO_UPDATE="true"

    # Uncomment the following line to change how often to auto-update (in days).
    # export UPDATE_ZSH_DAYS=13

    # Uncomment the following line to disable colors in ls.
    # DISABLE_LS_COLORS="true"

    # Uncomment the following line to disable auto-setting terminal title.
    # DISABLE_AUTO_TITLE="true"

    # Uncomment the following line to enable command auto-correction.
    # ENABLE_CORRECTION="true"

    # Uncomment the following line to display red dots whilst waiting for completion.
    # COMPLETION_WAITING_DOTS="true"

    # Uncomment the following line if you want to disable marking untracked files
    # under VCS as dirty. This makes repository status check for large repositories
    # much, much faster.
    # DISABLE_UNTRACKED_FILES_DIRTY="true"

    # Uncomment the following line if you want to change the command execution time
    # stamp shown in the history command output.
    # The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
    # HIST_STAMPS="mm/dd/yyyy"

    # Would you like to use another custom folder than $ZSH/custom?
    # ZSH_CUSTOM=/path/to/new-custom-folder

    # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
    # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    # Add wisely, as too many plugins slow down shell startup.
    plugins=(
    git, 
    zsh-autosuggestions
    )
    # support bash autocompletion
    # https://stackoverflow.com/questions/3249432/i-have-a-bash-tab-completion-script-is-t
    #autoload bashcompinit
    #bashcompinit
    source ~/.bash_profile

    if [[ -f /usr/share/bash-completion/completions/lpass ]]; then
            source /usr/share/bash-completion/completions/lpass
    fi

    source $ZSH/oh-my-zsh.sh

    # User configuration

    # export MANPATH="/usr/local/man:$MANPATH"

    # You may need to manually set your language environment
    # export LANG=en_US.UTF-8

    # Preferred editor for local and remote sessions
    # if [[ -n $SSH_CONNECTION ]]; then
    #   export EDITOR='vim'
    # else
    #   export EDITOR='mvim'
    # fi

    # Compilation flags
    # export ARCHFLAGS="-arch x86_64"

    # ssh
    # export SSH_KEY_PATH="~/.ssh/rsa_id"

    # Set personal aliases, overriding those provided by oh-my-zsh libs,
    # plugins, and themes. Aliases can be placed here, though oh-my-zsh
    # users are encouraged to define aliases within the ZSH_CUSTOM folder.
    # For a full list of active aliases, run `alias`.
    #
    # Example aliases
    # alias zshconfig="mate ~/.zshrc"
    # alias ohmyzsh="mate ~/.oh-my-zsh"
    export PATH="/usr/local/opt/[email protected] /cdn-cgi/l/email-protection/bin:$PATH"
    zstyle ':completion:*:ssh:*' hosts off
    zstyle ':completion:*:ssh:*' config on

如果有人可以帮助我!我很乐意感激。

Thanks


这是来自的脚本相关问题 https://serverfault.com/a/170481.

h=()
if [[ -r ~/.ssh/config ]]; then
  h=($h ${${${(@M)${(f)"$(cat ~/.ssh/config)"}:#Host *}#Host }:#*[*?]*})
fi
if [[ -r ~/.ssh/known_hosts ]]; then
  h=($h ${${${(f)"$(cat ~/.ssh/known_hosts{,2} || true)"}%%\ *}%%,*}) 2>/dev/null
fi
if [[ $#h -gt 0 ]]; then
  zstyle ':completion:*:ssh:*' hosts $h
  zstyle ':completion:*:slogin:*' hosts $h
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zsh 无法正确自动完成我的 ssh 命令 的相关文章

  • 连接到 OpenShift (Redhat Paas) mysql 实例

    我正在尝试将我的 C 应用程序与 openshift 数据库连接 但我得到了这个例外conn Open Eccezione gt MySql Data MySqlClient MySqlException 0x80004005 Unable
  • 自定义 SSH 端口上的 Git

    我的 VPS 提供商建议我将 SSH 端口保留为他们默认分配的自定义端口号 不是 22 问题是 虽然我知道我可以在创建远程配置时提供端口号 但在进行 Git 克隆时似乎无法提供相同的操作 我在用gitolite https wiki arc
  • jQuery 变量在定义时声称它是未定义的

    我试图在同一页面上有两个自动填充文本框 一个用于手机型号 input1 一个用于固件 input2 当两者都填充时 我希望显示一个带有ID input1input2 的div 但是当在input1 中输入值时 它声称phone 的变量未定义
  • ssh远程变量赋值?

    以下内容对我不起作用 ssh email protected cdn cgi l email protection k 5 echo k 它只是返回一个空行 如何在远程会话 ssh 上分配变量 Note 我的问题是not关于如何将本地变量传
  • Netbeans 自动完成功能停止工作?

    我使用的是 Netbeans 6 9 1 一切都很好 但是突然间 它停止检测对代码所做的任何更改 例如新变量 函数等 如果我尝试重构 重命名变量 例如按 CTRL R 它说 重构在此上下文中不可用 如果重要的话 它在 PHP 项目中 有任何
  • PHPStorm - 无效的后代文件名

    我正在尝试将 Windows 7 PC 上的本地 PHPStorm 项目与 Ubuntu 服务器同步 当我尝试任何类型的连接 例如 测试 SFTP 连接 时 它会失败并显示 Invalid descendent file name C np
  • Emacs + 流浪汉 + plink

    我正在尝试让 emacs trapmp 在 Windows XP 下运行 以便在 Amazon EC2 实例上通过 putty plink 工作 用于执行此操作的文档很少 我可以找到部分文档 但没有一个文档能够解决实现此功能所需的所有步骤
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • 在 Select2 标签文本区域中创建新标签

    我有一个输入 文本区域 其中应用了 Select2 的标签 因此 当用户输入我的数据库中存在的项目名称时 它会显示匹配项目的列表 用户可以选择一个项目并创建一个标签 这是到目前为止我的基本标签功能的代码 usualSuppliers sel
  • 如何阻止地址自动填充谷歌地点

    所以我在我的表单上有一个谷歌地图自动完成功能 当它到达一个位置时 它会占据该位置并格式化它 以便所有正确的信息都进入表单上的不同输入 我遇到的问题是在 place changed 事件触发自动完成填充输入之前 我想阻止最初的人口 而是填充我
  • Xcode - 使用 SSH 身份验证添加存储库时出现身份验证失败错误

    我正在尝试通过 Xcode gt 设置 gt 帐户添加存储库 但我被困在正确的地址上 我们的存储库地址非常简单 my domain com port project name 通过 SSH 密钥进行身份验证 有人可以帮助我了解这里发生了什么
  • Ruby,通过 SSH 和 LOG 逐一运行 linux 命令

    我想用 Ruby 女巫 net ssh 编写代码 在远程 Linux 机器上一一运行命令并记录所有内容 在 Linux 机器上称为命令 stdout 和 stderr 所以我写函数 def rs ssh cmds cmds each do
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • 通过 HTTPS 的隧道

    在我的工作场所 流量拦截器 防火墙变得越来越糟糕 我无法通过端口 22 连接到我的家用计算机 并且缺乏 ssh 访问权限让我感到难过 我以前可以通过将 SSH 移动到端口 5050 来使用它 但我认为最近的一些过滤器现在将此流量视为 IM
  • 收到“/:未找到事件。”使用 PyCharm 远程调试器时

    当我使用 PyCharm 通过 ssh 进行远程调试时tcsh shell 服务器 很多时候它停止工作 并显示 未找到事件 更具体地说 我在 pycharm 调试控制台中遇到以下内容 ssh username hostserver 22 p
  • 处理 sshj 中的“[HOST_KEY_NOT_VERIFIABLE] 无法使用指纹验证 `ssh-rsa` 主机密钥”

    我在 sshj 方面遇到了一个奇怪的问题 我正在使用 sshj v0 6 0 我需要某人的帮助 使用公钥进行身份验证在某些计算机上可以正常工作 但在其他计算机上则不能正常工作 并且我看到以下错误 我能看出的唯一区别是 有问题的 UNIX I
  • Django - 具有自动完成功能的 Javascript 动态内联 FormSet

    我正在尝试制作一种能够附加参与者的调度程序事件编辑器 Models class Session models Model start time models DateTimeField end time models DateTimeFie
  • 无法在 PHP 中使用 SFTP

    我正在用 PHP 编写一个简单的 SFTP 客户端 因为我们需要通过 n 个远程服务器以编程方式检索文件 我正在使用 PECL SSH2 扩展 不过 我遇到了障碍 php net 上的文档建议您可以这样做 stream fopen ssh2
  • Git,无法在 Windows 上克隆存储库

    我正在尝试在 Windows 上使用 git 克隆远程存储库 我可以在我的 mac 上克隆它 但在 Windows 上我遇到了问题 当使用 git bash 克隆时 我收到一条消息 指出服务器的主机密钥未缓存在注册表中 它要求我按 y 或
  • 如何为我的 .zshrc 文件指定自定义路径?

    我正在尝试将 zshrc 移动到一个文件夹 在该文件夹中我将此类文件与 Github 同步 但现在每当我启动 zsh 会话时 它都不会使用该配置文件 假设我将文件更改为 dotfiles 如何将 dotfiles zshrc 添加到 PAT

随机推荐

  • hickle NameError:名称“文件”未定义

    请向我解释为什么我会遇到这个错误 我已经在ubuntu中安装了python 3 5 import os import hickle as hkl import numpy as np array obj np ones 32768 dtyp
  • 验证错误后jsf viewparam丢失[重复]

    这个问题在这里已经有答案了 我面临以下问题 在一页中 我列出了应用程序的所有用户 并为每个用户提供了一个 编辑 按钮 这是一个 GET 链接 id
  • 优化文件缓存和 HTTP2

    我们的网站正在考虑切换到 http2 我的理解是http2 使文件连接等优化技术变得过时 因为使用 http2 的服务器只发送一个请求 相反 我看到的建议是最好保持文件大小较小以便它们更有可能被浏览器缓存 这可能取决于网站的大小 但是如果网
  • 自动映射器配置文件未在启动时加载?

    我在用着 自动映射器 6 1 1 AutoMapper Extensions Microsoft DependencyInjection 3 0 1 看来我的个人资料没有被加载 每次我调用 mapper map 时我都会得到AutoMapp
  • 如何在 PHP cURL 请求中将 OData 发送到 RESTful API

    我正在尝试使用 PHP 将 GET 请求中的 OData 参数发送到 RESTful API 对此服务的格式正确的 OData 请求如下所示 https myapi org endpoint filter family name eq Do
  • 了解左值/右值表达式与对象类型

    我读过一些之前的最佳答案以及 Stroustrup 的 C 编程语言 和 Effective Modern C 但我很难真正理解表达式的左值 右值方面与其类型之间的区别 在 Effective Modern C 的简介中说 确定表达式是否为
  • 在这个简单的 WPF 应用程序中实现进度条

    我有 MainWindow 它有它的视图模型 MainWindowViewModel 窗口内有一个接受用户输入的文本框 几个用于过滤搜索的单选按钮和一个按钮 使用如下命令将按钮操作绑定到视图模型
  • 如何在列表视图上创建覆盖布局

    我有一个将填充的列表视图AsyncTask在应用程序的底部边缘 我需要显示固定的覆盖布局 如下所示 但我不知道如何在 xml 中做到这一点 这是我现在的layout xml
  • Haskell 中 zipWith fibonacci 的时间复杂度

    在 Haskell 中 斐波那契函数的规范 zipWith 实现是 fibs Integer fibs 1 1 zipWith fibs tail fibs 我很难分析这个的时间复杂度 谎言 n 尝试将其写在纸上 起初我认为它是指数级的 然
  • 在 Spyder IDE 中使用 Matplotlib 绘制内联或单独窗口

    当我使用 Matplotlib 绘制一些图形时 默认的内联绘图通常就可以了 但是 当我绘制一些 3D 图形时 我希望将它们放在单独的窗口中 以便可以启用旋转等交互 我可以在 Python 代码中配置哪个图形要内联显示以及哪个图形要在新窗口中
  • 在正则表达式中使用否定条件

    是否可以在 gsub 表达式中使用负匹配 我想替换以以下开头的字符串hello except那些开始于hello Peter my string gsub hello i 我应该放什么来代替 听起来你想要一个负面的前瞻 gt gt hell
  • Grails - 无法读取 org.grails.plugins:tomcat:zip:8.0.33 的工件描述符

    从今天早上开始 我似乎遇到了 grails 插件存储库的问题 使用 Grails 2 4 4 获取 证书中的主机名不匹配 jfrog io gt 或 jfrog io gt 或 BuildConfig 具有 在插件下构建 org grail
  • Spring Data Rest - 如何在 @RepositoryEventHandler 中接收标头

    我正在使用最新的 Spring Data Rest 并且正在处理该事件 创建之前 我的要求是还捕获提交给POST模型的端点 Client 但是 该界面存储库事件处理程序并没有暴露这一点 Component RepositoryEventHa
  • 将 CardView 置于仅包含一个元素的 RecyclerView 中

    我使用的 RecyclerView 包含带有 TextView 和 ImageView 的 CardView 每张卡代表一个城市 我还在每张卡片上都有一个 onClickListener 它可以引导我找到该城市的博物馆列表 Recycler
  • 如何使用 JSTL 循环遍历字符串中的每个字符?

    如何使用 JSTL 循环遍历字符串中的每个字符 棘手的使用fn substring 会做
  • Angular-Dart DI 库中的工厂注入

    在我的 Dart 应用程序中 我使用 MVP 模式和 Angular dart 依赖注入库 Angular di 在上面的示例中 我无法注入 MyView 或 MyPresenter 因为这是循环依赖项 class MyView MyPre
  • 术语:前向声明与函数原型

    对我来说 使用 C 编程语言时这些术语本质上是同义词 在实践中 我可能更喜欢文件内原型的 前向声明 而不是通过头文件包含的原型的 函数原型 但当你考虑预处理后会发生什么时 即使这也是人为的区别 也许我错过了一些东西 对于何时使用一个术语与另
  • 解构 Open Layers 3 地图

    所以 我使用 Open Layers 3 和 Ember js 来制作仪表板 并且我已经动态加载地图 但我希望它在我离开路线时被销毁 我发现的唯一东西是 map destroy 但它是针对旧版本的API 新版本中似乎没有 进入地图页面几次后
  • 取消设置 git 配置

    我在 Mac 上使用 FileMerge 来查看差异 并设置为 git config global diff external bin git diff cmd sh 现在我不想再使用 FileMerge 如何恢复到之前的默认设置 Use
  • Zsh 无法正确自动完成我的 ssh 命令

    我在 ssh 自动完成方面遇到一些问题 我希望我的 zsh 在我的 ssh config 文件上自动完成 但到目前为止它只对 etc hosts 文件执行此操作 我发现如何通过添加此配置来不使用主机文件 zstyle completion