Update runtime files
diff --git a/runtime/indent/perl6.vim b/runtime/indent/raku.vim
similarity index 88%
rename from runtime/indent/perl6.vim
rename to runtime/indent/raku.vim
index 51c7923..3f9b49e 100644
--- a/runtime/indent/perl6.vim
+++ b/runtime/indent/raku.vim
@@ -36,7 +36,7 @@
 " Is syntax highlighting active ?
 let b:indent_use_syntax = has("syntax")
 
-setlocal indentexpr=GetPerl6Indent()
+setlocal indentexpr=GetRakuIndent()
 
 " we reset it first because the Perl 5 indent file might have been loaded due
 " to a .pl/pm file extension, and indent files don't clean up afterwards
@@ -50,7 +50,7 @@
 let s:cpo_save = &cpo
 set cpo-=C
 
-function! GetPerl6Indent()
+function! GetRakuIndent()
 
     " Get the line to be indented
     let cline = getline(v:lnum)
@@ -60,11 +60,6 @@
         return 0
     endif
 
-    " Don't reindent coments on first column
-    if cline =~ '^#'
-        return 0
-    endif
-
     " Get current syntax item at the line's first char
     let csynid = ''
     if b:indent_use_syntax
@@ -72,7 +67,7 @@
     endif
 
     " Don't reindent POD and heredocs
-    if csynid =~ "^p6Pod"
+    if csynid =~ "^rakuPod"
         return indent(v:lnum)
     endif
 
@@ -92,7 +87,7 @@
         let skippin = 2
         while skippin
             let synid = synIDattr(synID(lnum,1,0),"name")
-            if (synid =~ "^p6Pod" || synid =~ "p6Comment")
+            if (synid =~ "^rakuPod" || synid =~ "rakuComment")
                 let lnum = prevnonblank(lnum - 1)
                 if lnum == 0
                     return 0
@@ -107,19 +102,19 @@
     endif
 
         if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
-            let ind = ind + shiftwidth()
+            let ind = ind + &sw
         endif
         if cline =~ '^\s*[)}\]»>]'
-            let ind = ind - shiftwidth()
+            let ind = ind - &sw
         endif
 
     " Indent lines that begin with 'or' or 'and'
     if cline =~ '^\s*\(or\|and\)\>'
         if line !~ '^\s*\(or\|and\)\>'
-            let ind = ind + shiftwidth()
+            let ind = ind + &sw
         endif
     elseif line =~ '^\s*\(or\|and\)\>'
-        let ind = ind - shiftwidth()
+        let ind = ind - &sw
     endif
 
     return ind
diff --git a/runtime/indent/rmd.vim b/runtime/indent/rmd.vim
index 83fe4e4..8fd5725 100644
--- a/runtime/indent/rmd.vim
+++ b/runtime/indent/rmd.vim
@@ -2,7 +2,7 @@
 " Language:	Rmd
 " Author:	Jakson Alves de Aquino <jalvesaq@gmail.com>
 " Homepage:     https://github.com/jalvesaq/R-Vim-runtime
-" Last Change:	Sun Aug 19, 2018  09:14PM
+" Last Change:	Sun Mar 28, 2021  08:05PM
 
 
 " Only load this indent file when no other was loaded.
@@ -13,7 +13,7 @@
 let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
 let b:did_indent = 1
 
-setlocal indentkeys=0{,0},:,!^F,o,O,e
+setlocal indentkeys=0{,0},<:>,!^F,o,O,e
 setlocal indentexpr=GetRmdIndent()
 
 if exists("*GetRmdIndent")
@@ -23,6 +23,21 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
+" Simple Python indentation algorithm
+function s:GetPyIndent()
+  let plnum = prevnonblank(v:lnum - 1)
+  let pline = getline(plnum)
+  let cline = getline(v:lnum)
+  if pline =~ '^s```\s*{\s*python '
+    return 0
+  elseif pline =~ ':$'
+    return indent(plnum) + &shiftwidth
+  elseif cline =~ 'else:$'
+    return indent(plnum) - &shiftwidth
+  endif
+  return indent(plnum)
+endfunction
+
 function s:GetMdIndent()
   let pline = getline(v:lnum - 1)
   let cline = getline(v:lnum)
@@ -37,13 +52,14 @@
 endfunction
 
 function s:GetYamlIndent()
-  let pline = getline(v:lnum - 1)
+  let plnum = prevnonblank(v:lnum - 1)
+  let pline = getline(plnum)
   if pline =~ ':\s*$'
-    return indent(v:lnum) + shiftwidth()
+    return indent(plnum) + shiftwidth()
   elseif pline =~ '^\s*- '
     return indent(v:lnum) + 2
   endif
-  return indent(prevnonblank(v:lnum - 1))
+  return indent(plnum)
 endfunction
 
 function GetRmdIndent()
@@ -52,9 +68,11 @@
   endif
   if search('^[ \t]*```{r', "bncW") > search('^[ \t]*```$', "bncW")
     return s:RIndent()
-  elseif v:lnum > 1 && search('^---$', "bnW") == 1 &&
-        \ (search('^---$', "nW") > v:lnum || search('^...$', "nW") > v:lnum)
+  elseif v:lnum > 1 && (search('^---$', "bnW") == 1 &&
+        \ (search('^---$', "nW") > v:lnum || search('^\.\.\.$', "nW") > v:lnum))
     return s:GetYamlIndent()
+  elseif search('^[ \t]*```{python', "bncW") > search('^[ \t]*```$', "bncW")
+    return s:GetPyIndent()
   else
     return s:GetMdIndent()
   endif
diff --git a/runtime/indent/vim.vim b/runtime/indent/vim.vim
index 5c02264..ca1e472 100644
--- a/runtime/indent/vim.vim
+++ b/runtime/indent/vim.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	Vim script
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2021 Feb 18
+" Last Change:	2021 Apr 18
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -71,7 +71,8 @@
       " End of heredoc: use indent of matching start line
       let lnum = v:lnum - 1
       while lnum > 0
-	if synIDattr(synID(lnum, 1, 1), "name") !~ 'vimLetHereDoc'
+	let attr = synIDattr(synID(lnum, 1, 1), "name")
+	if attr != '' && attr !~ 'vimLetHereDoc'
 	  return indent(lnum)
 	endif
 	let lnum -= 1