From 54adcc154a42ad49af486ddd69d71fe51fcb8e18 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Sun, 26 Jul 2026 13:25:10 +0800
Subject: [PATCH] fix: 参数不足时显示 help 后添加空行

---
 cmd/search.go |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/cmd/search.go b/cmd/search.go
index d47e44d..e7e31a1 100644
--- a/cmd/search.go
+++ b/cmd/search.go
@@ -3,6 +3,7 @@
 import (
 	"fmt"
 	"os"
+	"strings"
 
 	"github.com/aisim/kb-cli/internal/index"
 	"github.com/aisim/kb-cli/internal/search"
@@ -22,10 +23,10 @@
 var searchCmd = &cobra.Command{
 	Use:   "search [keywords...]",
 	Short: "搜索知识库",
-	Long: `# search - 搜索
+	Long:  `# search - 搜索
 kb-cli search <关键词> [--top N] [--expanded <词>] [--symptom <词>] [--with-content] [--with-links] [--json] # 搜索知识库,支持关键词、扩展词、症状词`,
-	Args: cobra.MinimumNArgs(1),
-	RunE: runSearch,
+	Args:  cobra.MinimumNArgs(1),
+	RunE:  runSearch,
 }
 
 func init() {
@@ -36,6 +37,9 @@
 	searchCmd.Flags().BoolVar(&jsonOut, "json", false, "JSON 格式输出")
 	searchCmd.Flags().BoolVar(&withContent, "with-content", false, "返回完整文件内容")
 	searchCmd.Flags().BoolVar(&withLinks, "with-links", false, "显示关联文档链接")
+	
+	// 参数不足时显示 help
+	searchCmd.SetUsageTemplate(searchCmd.Long)
 }
 
 func runSearch(cmd *cobra.Command, args []string) error {
@@ -59,6 +63,18 @@
 		}
 	}
 
+	// 合并所有关键词(支持空格分隔和引号分隔)
+	var allKeywords []string
+	for _, arg := range args {
+		// 如果参数包含空格,按空格分割
+		parts := strings.Fields(arg)
+		allKeywords = append(allKeywords, parts...)
+	}
+
+	if len(allKeywords) == 0 {
+		return fmt.Errorf("请提供至少一个关键词")
+	}
+
 	// 执行搜索
 	opts := search.SearchOptions{
 		Expanded:    expanded,
@@ -68,7 +84,7 @@
 		WithLinks:   withLinks,
 	}
 
-	results, err := search.Search(store, args, opts)
+	results, err := search.Search(store, allKeywords, opts)
 	if err != nil {
 		return fmt.Errorf("搜索失败: %w", err)
 	}

--
Gitblit v1.9.1