From 81846734e6ee1bf7da9acbbd5871e277b8a0ccd0 Mon Sep 17 00:00:00 2001
From: zhangjq <z16372660229@163.com>
Date: 星期六, 07 二月 2026 14:44:29 +0800
Subject: [PATCH] “加了编辑加了批量发稿,改了文案编辑获取人名”

---
 src/views/copywritingReview/CopywritingList.vue |   81 ++++++++-
 tatus                                           |  241 ++++++++++++++++++++++++++++++
 src/views/copywritingReview/review/index.vue    |    8 
 src/views/copywriting/generated/index.vue       |    9 
 src/views/copywritingReview/Copywriting.api.ts  |    5 
 src/views/copywritingUp/BatchPublish.vue        |  114 ++++---------
 6 files changed, 361 insertions(+), 97 deletions(-)

diff --git a/src/views/copywriting/generated/index.vue b/src/views/copywriting/generated/index.vue
index aa08f33..b242d43 100644
--- a/src/views/copywriting/generated/index.vue
+++ b/src/views/copywriting/generated/index.vue
@@ -218,13 +218,8 @@
             wenti: this.wenti || '',
           };
 
-          // 鐩存帴璋冪敤缂栬緫鎺ュ彛锛岀鐢ㄨ嚜鍔ㄦ垚鍔熸彁绀�
-          await defHttp.post({ 
-            url: '/copywriting/copywriting/edit', 
-            params 
-          }, {
-            successMessageMode: 'none' // 绂佺敤鑷姩鎴愬姛鎻愮ず
-          });
+          // 璋冪敤缂栬緫鎺ュ彛
+          await saveOrUpdate(params, false);
           // 淇濆瓨鎴愬姛鍚庤繑鍥炰笂涓�绾ч〉闈�
           this.$router.back();
         } catch (error) {
diff --git a/src/views/copywritingReview/Copywriting.api.ts b/src/views/copywritingReview/Copywriting.api.ts
index bbcb6b2..6b3dce3 100644
--- a/src/views/copywritingReview/Copywriting.api.ts
+++ b/src/views/copywritingReview/Copywriting.api.ts
@@ -75,7 +75,8 @@
 /**
  * 瀹℃牳鎺ュ彛
  * @param params 瀹℃牳鍙傛暟
+ * @param options 閰嶇疆閫夐」
  */
-export const reviewCopywriting = (params) => {
-  return defHttp.post({url: Api.edit, params});
+export const reviewCopywriting = (params, options = {}) => {
+  return defHttp.post({url: Api.edit, params}, options);
 }
diff --git a/src/views/copywritingReview/CopywritingList.vue b/src/views/copywritingReview/CopywritingList.vue
index 31e0377..ed7cb1c 100644
--- a/src/views/copywritingReview/CopywritingList.vue
+++ b/src/views/copywritingReview/CopywritingList.vue
@@ -54,7 +54,7 @@
           {{ record.semanticWord?.nowNo || '' }}
         </template>
         <template v-else-if="column.dataIndex === 'semanticWord.changer'">
-          {{ record.semanticWord?.changer || '' }}
+          {{ getChangerName(record.semanticWord?.changer) }}
         </template>
       </template>
     </BasicTable>
@@ -162,16 +162,24 @@
   }
   function handleEdit(record: Recordable) {
     try {
+      // 鐩存帴璺宠浆鍒扮敓鎴愰〉闈紝浼犻�掑綋鍓嶉〉闈㈢殑鍙傛暟
       router.push({
-        path: '/copywritingReview/review/index',
+        path: '/copywriting/generated/index',
         query: {
+          semanticWord: record.semanticWord?.word || '',
+          ranking: record.semanticWord?.ranking || '',
+          outWord: record.semanticWord?.outWord || '',
+          contractId: record.semanticWord?.contractId || '',
           id: record.id || '',
+          title: record.title || '',
+          text: record.text || '',
+          fromEdit: 'true', // 娣诲姞鏍囪瘑锛岃〃绀烘潵鑷紪杈戞寜閽烦杞�
         },
       });
     } catch (error) {
-      console.error('璺敱璺宠浆澶辫触:', error);
+      console.error('璺宠浆澶辫触:', error);
       // 濡傛灉璺敱璺宠浆澶辫触锛屽皾璇曚娇鐢ㄥ畬鏁磋矾寰�
-      window.location.href = '/#/copywriting/download';
+      window.location.href = '/#/copywriting/generated/index?id=' + (record.id || '');
     }
   }
   /**
@@ -206,6 +214,22 @@
   }
  
   /**
+   * 瀹℃牳浜嬩欢
+   */
+  function handleReview(record: Recordable) {
+    try {
+      router.push({
+        path: '/copywritingReview/review/index',
+        query: {
+          id: record.id || '',
+        },
+      });
+    } catch (error) {
+      console.error('璺宠浆澶辫触:', error);
+      window.location.href = '/#/copywritingReview/review/index?id=' + (record.id || '');
+    }
+  }
+  /**
    * 鍒犻櫎浜嬩欢
    */
   async function handleDelete(record) {
@@ -230,14 +254,14 @@
     // 鏍规嵁鐘舵�佸�煎喅瀹氭寜閽樉绀哄拰鐐瑰嚮浜嬩欢
     const isReviewStatus = record.status == 3 || record.status == 4;
     const buttonLabel = isReviewStatus ? '鏌ョ湅' : '瀹℃牳';
-    const onClickHandler = isReviewStatus ? handleReviewDetail : handleEdit;
- 
+    const onClickHandler = isReviewStatus ? handleReviewDetail : handleReview;
+
     return [
-      //  {
-      //    label: '缂栬緫',
-      //    onClick: handleEdit.bind(null, record),
-      //    auth: 'copywriting:copywriting:edit'
-      //  },
+      {
+        label: '缂栬緫',
+        onClick: handleEdit.bind(null, record),
+        auth: 'copywriting:copywriting:edit'
+      },
       {
         label: buttonLabel,
         onClick: onClickHandler.bind(null, record),
@@ -265,6 +289,41 @@
       },
     ];
   }
+
+  /**
+   * 鑾峰彇缂栬緫鑰呭悕绉�
+   * @param changer 缂栬緫鑰呬俊鎭�
+   * @returns 鏍煎紡鍖栧悗鐨勭紪杈戣�呭悕绉�
+   */
+  function getChangerName(changer) {
+    if (!changer) return '';
+    // 濡傛灉changer鏄璞′笖鍖呭惈name瀛楁锛岃繑鍥瀗ame
+    if (typeof changer === 'object' && changer.name) {
+      return changer.name;
+    }
+    // 濡傛灉changer鏄璞′笖鍖呭惈realname瀛楁锛岃繑鍥瀝ealname
+    if (typeof changer === 'object' && changer.realname) {
+      return changer.realname;
+    }
+    // 濡傛灉changer鏄璞′笖鍖呭惈username瀛楁锛岃繑鍥瀠sername
+    if (typeof changer === 'object' && changer.username) {
+      return changer.username;
+    }
+    // 濡傛灉changer鏄瓧绗︿覆锛屾鏌ユ槸鍚︽槸ID鏍煎紡
+    if (typeof changer === 'string') {
+      // 灏濊瘯浠庡瓧绗︿覆涓彁鍙栧彲鑳界殑鍚嶇О閮ㄥ垎
+      // 澶勭悊绫讳技 "197876356840171 5702" 杩欐牱鐨勬牸寮�
+      const parts = changer.split(' ');
+      if (parts.length > 1) {
+        // 濡傛灉鏈夊涓儴鍒嗭紝杩斿洖鏈�鍚庝竴涓儴鍒�
+        return parts[parts.length - 1];
+      }
+      // 鍚﹀垯鐩存帴杩斿洖
+      return changer;
+    }
+    // 鍏朵粬鎯呭喌杩斿洖绌哄瓧绗︿覆
+    return '';
+  }
 </script>
  
 <style lang="less" scoped>
diff --git a/src/views/copywritingReview/review/index.vue b/src/views/copywritingReview/review/index.vue
index fca1f04..edb371c 100644
--- a/src/views/copywritingReview/review/index.vue
+++ b/src/views/copywritingReview/review/index.vue
@@ -164,7 +164,9 @@
           platform: reviewForm.recommendedPlatform,
         };
  
-        reviewCopywriting(params)
+        reviewCopywriting(params, {
+          successMessageMode: 'none' // 绂佺敤榛樿鎴愬姛娑堟伅
+        })
           .then(() => {
             loading.reject = false;
             message.success('鏂囨宸查┏鍥�');
@@ -204,7 +206,9 @@
           platform: reviewForm.recommendedPlatform,
         };
  
-        reviewCopywriting(params)
+        reviewCopywriting(params, {
+          successMessageMode: 'none' // 绂佺敤榛樿鎴愬姛娑堟伅
+        })
           .then(() => {
             loading.approve = false;
             message.success('鏂囨宸查�氳繃');
diff --git a/src/views/copywritingUp/BatchPublish.vue b/src/views/copywritingUp/BatchPublish.vue
index f5709cc..cb56f58 100644
--- a/src/views/copywritingUp/BatchPublish.vue
+++ b/src/views/copywritingUp/BatchPublish.vue
@@ -207,22 +207,16 @@
 
   // 鎵归噺鍙戠
   const handleBatchPublish = async () => {
-    if (!formRef.value) return;
-    
     try {
       // 1. 琛ㄥ崟楠岃瘉
-      await formRef.value.validate();
+      if (!formState.contractId) {
+        createMessage.error('璇烽�夋嫨鍚堝悓');
+        return;
+      }
+      
       submitLoading.value = true;
       
-      // 2. 鏋勫缓璇锋眰鍙傛暟
-      const requestData = {
-        contractId: formState.contractId,
-      };
-      
-      console.log('=== 鎵归噺鍙戠璇锋眰鏁版嵁 ===');
-      console.log('璇锋眰鏁版嵁:', requestData);
-      
-      // 3. 鑾峰彇鐧诲綍 Token
+      // 2. 鑾峰彇鐧诲綍 Token
       const token = getToken();
       if (!token) {
         createMessage.error('鏈櫥褰曪紝璇峰厛鐧诲綍绯荤粺');
@@ -230,63 +224,34 @@
         return;
       }
       
-      // 4. 鐢熸垚鏃堕棿鎴冲拰绛惧悕
-      const timestamp = Date.now().toString();
-      const sign = generateSign(token, timestamp, formState.contractId);
-      
-      // 5. 鏋勫缓 FormData
+      // 3. 鏋勫缓 FormData
       const formData = new FormData();
       formData.append('contractId', formState.contractId);
+      if (formState.mediaGroups) {
+        // 灏嗗獟浣撳垪琛ㄥ瓧绗︿覆鎸夐�楀彿鍒嗗壊骞舵坊鍔犲埌FormData涓�
+        const mediaArray = formState.mediaGroups.split(',').map(item => item.trim());
+        console.log('濯掍綋鏁扮粍:', mediaArray);
+        // 瀵逛簬multipart/form-data鏍煎紡锛岄噸澶嶆坊鍔犲悓鍚嶅弬鏁版潵浼犻�掓暟缁�
+        mediaArray.forEach((media, index) => {
+          formData.append('mediaList', media);
+          console.log(`娣诲姞鍙傛暟: mediaList = ${media}`);
+        });
+      }
       
-      // 6. 鍙戦�佽姹� - 鍙傝�冩壒閲忓鍏ョ殑浠g爜锛屼娇鐢� XMLHttpRequest 鎵嬪姩鏋勫缓璇锋眰
-      // 杩欐牱鍙互缁曡繃鎷︽埅鍣紝纭繚鍦ㄤ笉鍚岀幆澧冧笅閮借兘姝e父璋冪敤
-      const domainUrl = import.meta.env.VITE_GLOB_DOMAIN_URL || 'http://192.168.31.222:8080/jeecg-boot';
+      // 4. 鍙戦�佽姹� - 浣跨敤 XMLHttpRequest 鍙戦�� multipart/form-data 璇锋眰
+      const domainUrl = 'http://192.168.31.222:8080/jeecg-boot';
       const url = `${domainUrl}/api/excel/batchPublish`;
       
-      console.log('===== 鎵嬪姩鏋勫缓 multipart/form-data 璇锋眰 =====');
+      console.log('===== 鍙戦�� multipart/form-data 璇锋眰 =====');
       console.log('璇锋眰 URL:', url);
-      console.log('璇锋眰鍙傛暟:', requestData);
+      console.log('鍚堝悓ID:', formState.contractId);
+      console.log('濯掍綋鍒楄〃:', formState.mediaGroups);
       
-      // 鎵嬪姩鏋勫缓 multipart/form-data 璇锋眰
+      // 鍙戦�佽姹�
       const responseData = await new Promise((resolve, reject) => {
-        // 鐢熸垚闅忔満杈圭晫
-        const boundary = '----WebKitFormBoundary' + Math.random().toString(36).substr(2, 16);
-        
-        // 鏋勫缓璇锋眰浣撶殑鍚勪釜閮ㄥ垎
-        const parts = [];
-        
-        // 娣诲姞 contractId 鍙傛暟
-        parts.push(
-          `--${boundary}\r\n`,
-          'Content-Disposition: form-data; name="contractId"\r\n',
-          'Content-Type: text/plain\r\n',
-          '\r\n',
-          formState.contractId,
-          '\r\n'
-        );
-        
-        // 娣诲姞 mediaGroups 鍙傛暟
-        parts.push(
-          `--${boundary}\r\n`,
-          'Content-Disposition: form-data; name="mediaGroups"\r\n',
-          'Content-Type: text/plain\r\n',
-          '\r\n',
-          formState.mediaGroups,
-          '\r\n'
-        );
-        
-        // 娣诲姞缁撴潫杈圭晫
-        parts.push(
-          `--${boundary}--\r\n`
-        );
-        
-        // 鍒涘缓鏈�缁堢殑璇锋眰浣� Blob
-        const requestBody = new Blob(parts, { type: `multipart/form-data; boundary=${boundary}` });
-        
-        // 鍒涘缓 XMLHttpRequest
         const xhr = new XMLHttpRequest();
         
-        // 鐩戝惉璇锋眰瀹屾垚
+        // 鍝嶅簲澶勭悊
         xhr.onload = function() {
           if (xhr.status >= 200 && xhr.status < 300) {
             try {
@@ -303,37 +268,31 @@
           }
         };
         
-        // 鐩戝惉缃戠粶閿欒
+        // 缃戠粶閿欒澶勭悊
         xhr.onerror = function() {
           console.error('缃戠粶閿欒');
           reject(new Error('缃戠粶閿欒'));
         };
         
-        // 鎵撳紑璇锋眰
+        // 鎵撳紑杩炴帴
         xhr.open('POST', url, true);
         
-        // 璁剧疆璇锋眰澶� - 鍙傝�冩壒閲忓鍏ョ殑浠g爜锛岀‘淇濆寘鍚墍鏈夊繀闇�鐨勮姹傚ご
-        xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');
-        xhr.setRequestHeader('Authorization', `Bearer ${token}`);
-        xhr.setRequestHeader('Referer', window.location.href);
+        // 璁剧疆璇锋眰澶�
         xhr.setRequestHeader('X-Access-Token', token);
-        xhr.setRequestHeader('X-Sign', sign);
-        xhr.setRequestHeader('X-TIMESTAMP', timestamp);
         xhr.setRequestHeader('X-Tenant-Id', '0');
         xhr.setRequestHeader('X-Version', 'v3');
-        // 鎵嬪姩璁剧疆姝g‘鐨� Content-Type锛屽寘鍚竟鐣�
-        xhr.setRequestHeader('Content-Type', `multipart/form-data; boundary=${boundary}`);
-        // 璁剧疆 Content-Length
-        xhr.setRequestHeader('Content-Length', requestBody.size.toString());
+        xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');
+        // 娉ㄦ剰锛氫娇鐢‵ormData鏃讹紝娴忚鍣ㄤ細鑷姩璁剧疆Content-Type澶达紝鍖呭惈姝g‘鐨勮竟鐣�
         
         // 鍙戦�佽姹�
-        xhr.send(requestBody);
+        xhr.send(formData);
       });
       
       console.log('鍚庣鍝嶅簲鏁版嵁:', responseData);
       
-      // 7. 澶勭悊鍝嶅簲
-      if (responseData && (responseData.success || responseData.code === 200 || responseData.code === 201)) {
+      // 4. 澶勭悊鍝嶅簲
+      const data = responseData.data;
+      if (data && (data.success || data.code === 200 || data.code === 201)) {
         // 澶勭悊鎴愬姛鍝嶅簲
         publishResults.value = [
           {
@@ -352,7 +311,7 @@
       } else {
         // 澶勭悊澶辫触鍝嶅簲
         showResult.value = false; // 澶辫触鏃朵笉鏄剧ず缁撴灉
-        createMessage.error(responseData?.message || responseData?.msg || '鎵归噺鍙戠澶辫触');
+        createMessage.error(data?.message || data?.msg || '鎵归噺鍙戠澶辫触');
       }
       
     } catch (error: any) {
@@ -380,6 +339,11 @@
     console.log('閫夋嫨鐨勫悎鍚孖D:', value);
   };
   
+  // 杩囨护閫夐」
+  const filterOption = (input: string, option: any) => {
+    return (option?.label || '').toLowerCase().includes(input.toLowerCase());
+  };
+
   // 椤甸潰鍔犺浇鏃跺垵濮嬪寲
   onMounted(async () => {
     // 鍔犺浇鍚堝悓鍒楄〃
diff --git a/tatus b/tatus
index 462f7e3..1250959 100644
--- a/tatus
+++ b/tatus
@@ -71,3 +71,244 @@
   ESC-^F _<_c_1_> _<_c_2_>  *  Find close bracket _<_c_2_>.
   ESC-^B _<_c_1_> _<_c_2_>  *  Find open bracket _<_c_1_>.
         ---------------------------------------------------
+        Each "find close bracket" command goes forward to the close bracket 
+          matching the (_N-th) open bracket in the top line.
+        Each "find open bracket" command goes backward to the open bracket 
+          matching the (_N-th) close bracket in the bottom line.
+
+  m_<_l_e_t_t_e_r_>            Mark the current top line with <letter>.
+  M_<_l_e_t_t_e_r_>            Mark the current bottom line with <letter>.
+  '_<_l_e_t_t_e_r_>            Go to a previously marked position.
+  ''                   Go to the previous position.
+  ^X^X                 Same as '.
+  ESC-m_<_l_e_t_t_e_r_>        Clear a mark.
+        ---------------------------------------------------
+        A mark is any upper-case or lower-case letter.
+        Certain marks are predefined:
+             ^  means  beginning of the file
+             $  means  end of the file
+ ---------------------------------------------------------------------------
+
+                        CCHHAANNGGIINNGG FFIILLEESS
+
+  :e [_f_i_l_e]            Examine a new file.
+  ^X^V                 Same as :e.
+  :n                *  Examine the (_N-th) next file from the command line.
+  :p                *  Examine the (_N-th) previous file from the command line.
+  :x                *  Examine the first (or _N-th) file from the command line.
+  ^O^O                 Open the currently selected OSC8 hyperlink.
+  :d                   Delete the current file from the command line list.
+  =  ^G  :f            Print current file name.
+ ---------------------------------------------------------------------------
+
+                    MMIISSCCEELLLLAANNEEOOUUSS CCOOMMMMAANNDDSS
+
+  -_<_f_l_a_g_>              Toggle a command line option [see OPTIONS below].
+  --_<_n_a_m_e_>             Toggle a command line option, by name.
+  __<_f_l_a_g_>              Display the setting of a command line option.
+  ___<_n_a_m_e_>             Display the setting of an option, by name.
+  +_c_m_d                 Execute the less cmd each time a new file is examined.
+
+  !_c_o_m_m_a_n_d             Execute the shell command with $SHELL.
+  #_c_o_m_m_a_n_d             Execute the shell command, expanded like a prompt.
+  |XX_c_o_m_m_a_n_d            Pipe file between current pos & mark XX to shell command.
+  s _f_i_l_e               Save input to a file.
+  v                    Edit the current file with $VISUAL or $EDITOR.
+  V                    Print version number of "less".
+ ---------------------------------------------------------------------------
+
+                           OOPPTTIIOONNSS
+
+        Most options may be changed either on the command line,
+        or from within less by using the - or -- command.
+        Options may be given in one of two forms: either a single
+        character preceded by a -, or a name preceded by --.
+
+  -?  ........  --help
+                  Display help (from command line).
+  -a  ........  --search-skip-screen
+                  Search skips current screen.
+  -A  ........  --SEARCH-SKIP-SCREEN
+                  Search starts just after target line.
+  -b [_N]  ....  --buffers=[_N]
+                  Number of buffers.
+  -B  ........  --auto-buffers
+                  Don't automatically allocate buffers for pipes.
+  -c  ........  --clear-screen
+                  Repaint by clearing rather than scrolling.
+  -d  ........  --dumb
+                  Dumb terminal.
+  -D xx_c_o_l_o_r  .  --color=xx_c_o_l_o_r
+                  Set screen colors.
+  -e  -E  ....  --quit-at-eof  --QUIT-AT-EOF
+                  Quit at end of file.
+  -f  ........  --force
+                  Force open non-regular files.
+  -F  ........  --quit-if-one-screen
+                  Quit if entire file fits on first screen.
+  -g  ........  --hilite-search
+                  Highlight only last match for searches.
+  -G  ........  --HILITE-SEARCH
+                  Don't highlight any matches for searches.
+  -h [_N]  ....  --max-back-scroll=[_N]
+                  Backward scroll limit.
+  -i  ........  --ignore-case
+                  Ignore case in searches that do not contain uppercase.
+  -I  ........  --IGNORE-CASE
+                  Ignore case in all searches.
+  -j [_N]  ....  --jump-target=[_N]
+                  Screen position of target lines.
+  -J  ........  --status-column
+                  Display a status column at left edge of screen.
+  -k _f_i_l_e  ...  --lesskey-file=_f_i_l_e
+                  Use a compiled lesskey file.
+  -K  ........  --quit-on-intr
+                  Exit less in response to ctrl-C.
+  -L  ........  --no-lessopen
+                  Ignore the LESSOPEN environment variable.
+  -m  -M  ....  --long-prompt  --LONG-PROMPT
+                  Set prompt style.
+  -n .........  --line-numbers
+                  Suppress line numbers in prompts and messages.
+  -N .........  --LINE-NUMBERS
+                  Display line number at start of each line.
+  -o [_f_i_l_e] ..  --log-file=[_f_i_l_e]
+                  Copy to log file (standard input only).
+  -O [_f_i_l_e] ..  --LOG-FILE=[_f_i_l_e]
+                  Copy to log file (unconditionally overwrite).
+  -p _p_a_t_t_e_r_n .  --pattern=[_p_a_t_t_e_r_n]
+                  Start at pattern (from command line).
+  -P [_p_r_o_m_p_t]   --prompt=[_p_r_o_m_p_t]
+                  Define new prompt.
+  -q  -Q  ....  --quiet  --QUIET  --silent --SILENT
+                  Quiet the terminal bell.
+  -r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
+                  Output "raw" control characters.
+  -s  ........  --squeeze-blank-lines
+                  Squeeze multiple blank lines.
+  -S  ........  --chop-long-lines
+                  Chop (truncate) long lines rather than wrapping.
+  -t _t_a_g  ....  --tag=[_t_a_g]
+                  Find a tag.
+  -T [_t_a_g_s_f_i_l_e] --tag-file=[_t_a_g_s_f_i_l_e]
+                  Use an alternate tags file.
+  -u  -U  ....  --underline-special  --UNDERLINE-SPECIAL
+                  Change handling of backspaces, tabs and carriage returns.
+  -V  ........  --version
+                  Display the version number of "less".
+  -w  ........  --hilite-unread
+                  Highlight first new line after forward-screen.
+  -W  ........  --HILITE-UNREAD
+                  Highlight first new line after any forward movement.
+  -x [_N[,...]]  --tabs=[_N[,...]]
+                  Set tab stops.
+  -X  ........  --no-init
+                  Don't use termcap init/deinit strings.
+  -y [_N]  ....  --max-forw-scroll=[_N]
+                  Forward scroll limit.
+  -z [_N]  ....  --window=[_N]
+                  Set size of window.
+  -" [_c[_c]]  .  --quotes=[_c[_c]]
+                  Set shell quote characters.
+  -~  ........  --tilde
+                  Don't display tildes after end of file.
+  -# [_N]  ....  --shift=[_N]
+                  Set horizontal scroll amount (0 = one half screen width).
+
+                --exit-follow-on-close
+                  Exit F command on a pipe when writer closes pipe.
+                --file-size
+                  Automatically determine the size of the input file.
+                --follow-name
+                  The F command changes files if the input file is renamed.
+                --header=[_L[,_C[,_N]]]
+                  Use _L lines (starting at line _N) and _C columns as headers.
+                --incsearch
+                  Search file as each pattern character is typed in.
+                --intr=[_C]
+                  Use _C instead of ^X to interrupt a read.
+                --lesskey-context=_t_e_x_t
+                  Use lesskey source file contents.
+                --lesskey-src=_f_i_l_e
+                  Use a lesskey source file.
+                --line-num-width=[_N]
+                  Set the width of the -N line number field to _N characters.
+                --match-shift=[_N]
+                  Show at least _N characters to the left of a search match.
+                --modelines=[_N]
+                  Read _N lines from the input file and look for vim modelines.
+                --mouse
+                  Enable mouse input.
+                --no-keypad
+                  Don't send termcap keypad init/deinit strings.
+                --no-histdups
+                  Remove duplicates from command history.
+                --no-number-headers
+                  Don't give line numbers to header lines.
+                --no-search-header-lines
+                  Searches do not include header lines.
+                --no-search-header-columns
+                  Searches do not include header columns.
+                --no-search-headers
+                  Searches do not include header lines or columns.
+                --no-vbell
+                  Disable the terminal's visual bell.
+                --redraw-on-quit
+                  Redraw final screen when quitting.
+                --rscroll=[_C]
+                  Set the character used to mark truncated lines.
+                --save-marks
+                  Retain marks across invocations of less.
+                --search-options=[EFKNRW-]
+                  Set default options for every search.
+                --show-preproc-errors
+                  Display a message if preprocessor exits with an error status.
+                --proc-backspace
+                  Process backspaces for bold/underline.
+                --PROC-BACKSPACE
+                  Treat backspaces as control characters.
+                --proc-return
+                  Delete carriage returns before newline.
+                --PROC-RETURN
+                  Treat carriage returns as control characters.
+                --proc-tab
+                  Expand tabs to spaces.
+                --PROC-TAB
+                  Treat tabs as control characters.
+                --status-col-width=[_N]
+                  Set the width of the -J status column to _N characters.
+                --status-line
+                  Highlight or color the entire line containing a mark.
+                --use-backslash
+                  Subsequent options use backslash as escape char.
+                --use-color
+                  Enables colored text.
+                --wheel-lines=[_N]
+                  Each click of the mouse wheel moves _N lines.
+                --wordwrap
+                  Wrap lines at spaces.
+
+
+ ---------------------------------------------------------------------------
+
+                          LLIINNEE EEDDIITTIINNGG
+
+        These keys can be used to edit text being entered 
+        on the "command line" at the bottom of the screen.
+
+ RightArrow ..................... ESC-l ... Move cursor right one character.
+ LeftArrow ...................... ESC-h ... Move cursor left one character.
+ ctrl-RightArrow  ESC-RightArrow  ESC-w ... Move cursor right one word.
+ ctrl-LeftArrow   ESC-LeftArrow   ESC-b ... Move cursor left one word.
+ HOME ........................... ESC-0 ... Move cursor to start of line.
+ END ............................ ESC-$ ... Move cursor to end of line.
+ BACKSPACE ................................ Delete char to left of cursor.
+ DELETE ......................... ESC-x ... Delete char under cursor.
+ ctrl-BACKSPACE   ESC-BACKSPACE ........... Delete word to left of cursor.
+ ctrl-DELETE .... ESC-DELETE .... ESC-X ... Delete word under cursor.
+ ctrl-U ......... ESC (MS-DOS only) ....... Delete entire line.
+ UpArrow ........................ ESC-k ... Retrieve previous command line.
+ DownArrow ...................... ESC-j ... Retrieve next command line.
+ TAB ...................................... Complete filename & cycle.
+ SHIFT-TAB ...................... ESC-TAB   Complete filename & reverse cycle.
+ ctrl-L ................................... Complete filename, list all.

--
Gitblit v1.8.0