如何使用本地Vim通过远程WP-CLI管理WordPress?
使用本地Vim通过WP-CLI远程编辑Gravity Forms表单
我刚好碰到过类似的需求!核心问题是当你用--ssh参数时,WP-CLI会把整个命令(包括调用编辑器的操作)扔到远程机器上执行,所以默认会打开远程的Vim。要改用本地Vim,有两种靠谱的方案:
方案一:分步操作(简单直接,无需额外配置)
如果只是偶尔编辑表单,这种方法最省心,不需要折腾环境变量或脚本:
- 第一步:把远程表单导出到本地文件
wp gf form get 4 --ssh=remoteWP --path="/home/wp/disk/wordpress" > form-4.json - 第二步:用本地Vim编辑文件
vim form-4.json - 第三步:把编辑后的文件更新回远程WordPress
wp gf form update 4 --ssh=remoteWP --path="/home/wp/disk/wordpress" < form-4.json
方案二:一键编辑(配置后一步到位,适合高频使用)
如果经常需要远程编辑表单,配置一下就能像本地编辑一样方便,核心是让远程机器把临时文件传给本地Vim,编辑完再传回去:
前置准备
确保远程机器可以无密码SSH到你的本地机器(反之你已经能远程连过去,现在要反过来):
- 在本地生成SSH密钥对(如果还没有):
ssh-keygen -t ed25519 - 把本地的公钥(
~/.ssh/id_ed25519.pub)复制到远程机器的~/.ssh/authorized_keys里 - 确保本地开启了SSH服务,并且防火墙允许远程机器连接22端口
配置远程编辑脚本
- 登录到远程机器,创建一个脚本文件,比如
~/bin/local-vim-edit.sh:#!/bin/bash TEMP_FILE="$1" LOCAL_TEMP="/tmp/wp-form-$(basename "$TEMP_FILE")" LOCAL_USER="你的本地用户名" LOCAL_IP="你的本地公网IP或内网IP(如果远程和本地在同一内网)" # 把远程临时文件复制到本地 scp "$TEMP_FILE" "$LOCAL_USER@$LOCAL_IP:$LOCAL_TEMP" # 调用本地Vim编辑文件 ssh "$LOCAL_USER@$LOCAL_IP" "vim '$LOCAL_TEMP'" # 把编辑后的文件传回远程 scp "$LOCAL_USER@$LOCAL_IP:$LOCAL_TEMP" "$TEMP_FILE" # 清理本地临时文件 ssh "$LOCAL_USER@$LOCAL_IP" "rm '$LOCAL_TEMP'" - 给脚本添加执行权限:
chmod +x ~/bin/local-vim-edit.sh
一键编辑命令
现在你可以直接用这条命令调用本地Vim编辑远程表单:
wp gf form edit 4 --ssh=remoteWP --path="/home/wp/disk/wordpress" --env=EDITOR=~/bin/local-vim-edit.sh
如果嫌命令太长,可以在本地创建一个别名:
alias wp-remote='wp --ssh=remoteWP --path="/home/wp/disk/wordpress" --env=EDITOR=~/bin/local-vim-edit.sh'
之后只需输入wp-remote gf form edit 4就能一键编辑了!
注意事项
- 如果本地没有公网IP,远程机器无法直接连接你,这时候可以用反向SSH隧道或者ngrok之类的工具做端口转发,不过配置会复杂一些。
- 脚本里的
LOCAL_USER和LOCAL_IP要替换成你自己的本地用户名和IP哦。
内容的提问来源于stack exchange,提问作者jjk
相关产品推荐
相关产品推荐

