diff --git a/runtime/indent/r.vim b/runtime/indent/r.vim
index 07dfd13..f7956e4 100644
--- a/runtime/indent/r.vim
+++ b/runtime/indent/r.vim
@@ -2,7 +2,7 @@
 " Language:	R
 " Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
 " Homepage:     https://github.com/jalvesaq/R-Vim-runtime
-" Last Change:	Mon Feb 27, 2023  07:16PM
+" Last Change:	Sun Oct 08, 2023  10:45AM
 
 
 " Only load this indent file when no other was loaded.
@@ -13,6 +13,7 @@
 
 setlocal indentkeys=0{,0},:,!^F,o,O,e
 setlocal indentexpr=GetRIndent()
+setlocal autoindent
 
 let b:undo_indent = "setl inde< indk<"
 
@@ -47,27 +48,23 @@
       if a:line[i] == '"'
         let i += 1
       endif
-    else
+    elseif a:line[i] == "'"
+      let i += 1
+      let line1 = line1 . 's'
+      while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
+        let i += 1
+      endwhile
       if a:line[i] == "'"
         let i += 1
-        let line1 = line1 . 's'
-        while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen
-          let i += 1
-        endwhile
-        if a:line[i] == "'"
-          let i += 1
-        endif
-      else
-        if a:line[i] == "`"
-          let i += 1
-          let line1 = line1 . 's'
-          while a:line[i] != "`" && i < llen
-            let i += 1
-          endwhile
-          if a:line[i] == "`"
-            let i += 1
-          endif
-        endif
+      endif
+    elseif a:line[i] == "`"
+      let i += 1
+      let line1 = line1 . 's'
+      while a:line[i] != "`" && i < llen
+        let i += 1
+      endwhile
+      if a:line[i] == "`"
+        let i += 1
       endif
     endif
     if i == llen
@@ -97,10 +94,8 @@
         let i += 1
         if a:line[i] == ')'
           let nop -= 1
-        else
-          if a:line[i] == '('
-            let nop += 1
-          endif
+        elseif a:line[i] == '('
+          let nop += 1
         endif
       endwhile
       let line1 = line1 . a:line[i]
@@ -174,10 +169,8 @@
       if blc == 0
         let theidx = idx
       endif
-    else
-      if line[idx] == a:c
-        let blc += 1
-      endif
+    elseif line[idx] == a:c
+      let blc += 1
     endif
     let idx += 1
   endwhile
@@ -316,6 +309,11 @@
     endif
 
     if pb < 0 && line =~ '.*[,&|\-\*+<>]$'
+      if line =~ '.*[\-\*+>]$'
+        let is_op = v:true
+      else
+        let is_op = v:false
+      endif
       let lnum = s:Get_prev_line(lnum)
       while pb < 1 && lnum > 0
         let line = SanitizeRLine(getline(lnum))
@@ -324,9 +322,10 @@
         while ind > 0
           if line[ind] == ')'
             let pb -= 1
-          else
-            if line[ind] == '('
-              let pb += 1
+          elseif line[ind] == '('
+            let pb += 1
+            if is_op && pb == 0
+              return indent(lnum)
             endif
           endif
           if pb == 1
@@ -367,10 +366,8 @@
       else
         return indent(lnum) + shiftwidth()
       endif
-    else
-      if substitute(oline, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
-        return indent(lnum) - shiftwidth()
-      endif
+    elseif substitute(oline, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
+      return indent(lnum) - shiftwidth()
     endif
   elseif substitute(line, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0
     return indent(lnum) + shiftwidth()
@@ -404,12 +401,10 @@
   if cline =~ '^\s*else'
     if line =~ '<-\s*if\s*()'
       return indent(lnum) + shiftwidth()
+    elseif line =~ '\<if\s*()'
+      return indent(lnum)
     else
-      if line =~ '\<if\s*()'
-        return indent(lnum)
-      else
-        return indent(lnum) - shiftwidth()
-      endif
+      return indent(lnum) - shiftwidth()
     endif
   endif
 
