@@ -249,6 +249,21 @@ function! vimteractive#get_response_sgpt()
249249 endif
250250endfunction
251251
252+
253+ " Get the last response from the terminal for gpt-command-line
254+ function ! vimteractive#get_response_gpt ()
255+ let l: logfile = s: vimteractive_logfiles [b: vimteractive_connected_term ]
256+ let log_data = readfile (l: logfile )
257+ let log_data_str = join (log_data, " \n " )
258+
259+ let last_session_index = strridx (log_data_str, ' gptcli-session - INFO - assistant: ' )
260+ let end_text = strpart (log_data_str, last_session_index+ 35 )
261+ let price_index = match (end_text, ' gptcli-price' )
262+ let last_price_index = strridx (end_text, " \n " , price_index- 1 )
263+ return strpart (end_text, 0 , last_price_index)
264+ endfunction
265+
266+
252267" Get the last response from the terminal for ipython
253268function ! vimteractive#get_response_ipython ()
254269 let l: logfile = s: vimteractive_logfiles [b: vimteractive_connected_term ]
@@ -270,10 +285,6 @@ endfunction
270285function ! vimteractive#next_term ()
271286 let l: current_buffer = b: vimteractive_connected_term
272287 let l: current_index = index (s: vimteractive_buffers , l: current_buffer )
273- if l: current_index == -1
274- echom " Not in a terminal buffer"
275- return
276- endif
277288 let l: next_index = (l: current_index + 1 ) % len (s: vimteractive_buffers )
278289 call vimteractive#connect (vimteractive#buffer_list ()[l: next_index ])
279290endfunction
@@ -282,10 +293,6 @@ endfunction
282293function ! vimteractive#prev_term ()
283294 let l: current_buffer = b: vimteractive_connected_term
284295 let l: current_index = index (s: vimteractive_buffers , l: current_buffer )
285- if l: current_index == -1
286- echom " Not in a terminal buffer"
287- return
288- endif
289296 let l: prev_index = (l: current_index - 1 + len (s: vimteractive_buffers )) % len (s: vimteractive_buffers )
290297 call vimteractive#connect (vimteractive#buffer_list ()[l: prev_index ])
291298endfunction
0 commit comments