(已解决)为什么pycharm和Obsidian没有选中文本,也能获取到选中文本呢?

使用问题 · 825 次浏览
原++ 创建于 2024-03-08 09:14

比如说这个动作,我没有选中文本时是直接插入括号,但是我虽然没有选中,但是运行时就选中了当前行的一些内容,自动加上了括号?
怎么解决这个问题呢?

原++ 最后更新于 2024/3/8

原++ 2024-03-08 09:24 :

原++ 最后更新于 2024-03-08 09:25
Sunsh 2024-06-16 22:55 :

请教下,这个在Obsidian中是咋解决的,如何让没有选中内容时不获取整行?

原++ 回复 Sunsh 2024-06-17 08:46 :

不知道怎么搞?没有解决问题本身,只是解决了问题的疑问

FDJKDF 回复 原++ 2025-01-30 23:32 :

实现啦么,我也想做到这样的功能 😭

回复内容
CL 2024-03-08 09:15
#1

很多编辑器没有选中的时候是获取整行。 要在编辑器里找设置,没有设置的就没办法区分。

原++ 2024-03-08 09:25
#2

暂时没有找到在哪里设置,知道的网友可以分享一下哈,谢谢



Obsidian 已经解决. 直接用ai出一个Obsidian的插件 js的格式的,代码基本一般过. 然后给插件设置个快捷键用QK调用. 纯原生调用快的很呢

贴一个成功的:

manifest.json

{
  "id": "bracket-plugin",
  "name": "Bracket Plugin",
  "version": "0.0.1",
  "minAppVersion": "0.12.0",
  "description": "Inserts brackets or wraps selected text with brackets.",
  "author": "Your Name",
  "isDesktopOnly": false
}

main.js
const { Plugin } = require('obsidian');

module.exports = class BracketPlugin extends Plugin {
  onload() {
    // 定义括号类型
    const bracketType = {
      left: '「',
      right: '」'
    };

    this.addCommand({
      id: 'insert-or-wrap-brackets',
      name: '插入或括起括号',
      editorCallback: (editor) => {
        const selection = editor.getSelection();
        if (selection) {
          // 如果有选中的文字,就用括号括起来
          editor.replaceSelection(`${bracketType.left}${selection}${bracketType.right}`);
        } else {
          // 如果没选中文字,就插入一对括号
          editor.replaceSelection(`${bracketType.left}${bracketType.right}`);
          // 把光标移到括号中间
          const cursor = editor.getCursor();
          editor.setCursor(cursor.line, cursor.ch - 1);
        }
      }
    });
  }
}
放到 Users\Administrator\Documents\Obsidian Vault\.obsidian\plugins\bracket-plugin下面
重启 Obsidian,打开插件, 然后快捷键里给这个插件设置个快捷键 qk里设置个动作,模拟按这个快捷键即可.
回复主贴